---
Fuzzer filename: '/src/libusb_fuzzer.cc'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL18libusb_cpu_to_le16t
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __gxx_personality_v0
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __clang_call_terminate
      functionSourceFile: ''
      linkageType:     WeakODRLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          3
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __cxa_begin_catch
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_begin_catch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_allocate_exception
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZNSt20bad_array_new_lengthC1Ev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZNSt20bad_array_new_lengthD1Ev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_throw
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_end_catch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL18usbi_mutex_destroyP15pthread_mutex_t
      functionSourceFile: '/src/libusb/./libusb/os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         7
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:
        - Branch String:   './libusb/os/threads_posix.h:59,2'
          Branch Sides:
            - BranchSide:      './libusb/os/threads_posix.h:59,2'
              BranchSideFuncs: []
            - BranchSide:      './libusb/os/threads_posix.h:59,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './libusb/os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './libusb/os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    55
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL25libusb_fill_control_setupPhhhttt
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1905
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - buffer
        - bmRequestType
        - bRequest
        - wValue
        - wIndex
        - wLength
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ZL18libusb_cpu_to_le16t
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb/libusb.h:1909,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1910,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1911,19'
          Dst:             _ZL18libusb_cpu_to_le16t
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/libusb_fuzzer.cc'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - size
      BBCount:         11
      ICount:          126
      EdgeCount:       19
      CyclomaticComplexity: 10
      functionsReached:
        - _ZL18usbi_mutex_destroyP15pthread_mutex_t
        - _ZL25libusb_fill_control_setupPhhhttt
        - libusb_alloc_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libusb_fuzzer.cc:35,7'
          Branch Sides:
            - BranchSide:      'libusb_fuzzer.cc:36,5'
              BranchSideFuncs:
                - _ZL25libusb_fill_control_setupPhhhttt
                - _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
                - _ZL18usbi_mutex_destroyP15pthread_mutex_t
                - free
                - _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
            - BranchSide:      'libusb_fuzzer.cc:39,46'
              BranchSideFuncs:
                - _ZL25libusb_fill_control_setupPhhhttt
                - _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
                - _ZL18usbi_mutex_destroyP15pthread_mutex_t
                - free
                - _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev
      Callsites:
        - Src:             'libusb_fuzzer.cc:34,14'
          Dst:             libusb_alloc_transfer
        - Src:             'libusb_fuzzer.cc:39,3'
          Dst:             _ZL25libusb_fill_control_setupPhhhttt
        - Src:             'libusb_fuzzer.cc:45,3'
          Dst:             _ZL18usbi_mutex_destroyP15pthread_mutex_t
    - functionName:    list_splice_front
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - head
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_cut
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
        - head
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_init
      functionUses:    2
      BranchProfiles:
        - Branch String:   './libusbi.h:241,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:242,13'
              BranchSideFuncs:
                - list_init
            - BranchSide:      './libusbi.h:246,15'
              BranchSideFuncs:
                - list_init
      Callsites:
        - Src:             './libusbi.h:242,3'
          Dst:             list_init
        - Src:             './libusbi.h:251,2'
          Dst:             list_init
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_set
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - ptr
      BBCount:         6
      ICount:          32
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_setspecific
      functionUses:    2
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:95,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:95,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:95,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:95,2'
          Dst:             pthread_setspecific
        - Src:             './os/threads_posix.h:95,2'
          Dst:             __assert_fail
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - key
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:91,9'
          Dst:             pthread_getspecific
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_end_event_handling
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:507,2'
          Dst:             usbi_tls_key_set
    - functionName:    handle_timer_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2189
      functionLinenumberEnd: 2202
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - arm_timer_for_next_timeout
        - handle_timeouts_locked
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2192,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2195,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2198,6'
          Dst:             arm_timer_for_next_timeout
        - Src:             'io.c:2200,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    27
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:46,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    handle_timeouts_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2066
      functionLinenumberEnd: 2096
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         25
      ICount:          143
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - handle_timeout
        - usbi_get_monotonic_time
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:2070,6'
          Branch Sides:
            - BranchSide:      'io.c:2071,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2074,2'
              BranchSideFuncs:
                - usbi_get_monotonic_time
                - handle_timeout
        - Branch String:   'io.c:2078,2'
          Branch Sides:
            - BranchSide:      'io.c:2078,2'
              BranchSideFuncs:
                - handle_timeout
            - BranchSide:      'io.c:2079,30'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2082,8'
          Branch Sides:
            - BranchSide:      'io.c:2082,8'
              BranchSideFuncs:
                - handle_timeout
            - BranchSide:      'io.c:2086,7'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2082,7'
          Branch Sides:
            - BranchSide:      'io.c:2083,4'
              BranchSideFuncs:
                - handle_timeout
            - BranchSide:      'io.c:2086,7'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2086,7'
          Branch Sides:
            - BranchSide:      'io.c:2087,4'
              BranchSideFuncs:
                - handle_timeout
            - BranchSide:      'io.c:2090,7'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2090,7'
          Branch Sides:
            - BranchSide:      'io.c:2090,7'
              BranchSideFuncs:
                - handle_timeout
            - BranchSide:      'io.c:2090,7'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2090,7'
          Branch Sides:
            - BranchSide:      'io.c:2091,4'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2094,18'
              BranchSideFuncs:
                - handle_timeout
        - Branch String:   'io.c:2090,7'
          Branch Sides:
            - BranchSide:      'io.c:2091,4'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2094,18'
              BranchSideFuncs:
                - handle_timeout
      Callsites:
        - Src:             'io.c:2074,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2094,3'
          Dst:             handle_timeout
    - functionName:    arm_timer_for_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1357
      functionLinenumberEnd: 1381
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         18
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_arm_timer
        - usbi_disarm_timer
        - usbi_log
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1360,6'
          Branch Sides:
            - BranchSide:      'io.c:1361,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1363,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
                - usbi_log
                - usbi_arm_timer
        - Branch String:   'io.c:1363,2'
          Branch Sides:
            - BranchSide:      'io.c:1364,30'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1379,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
        - Branch String:   'io.c:1368,8'
          Branch Sides:
            - BranchSide:      'io.c:1368,8'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - usbi_log
                - usbi_disarm_timer
            - BranchSide:      'io.c:1372,9'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - usbi_log
                - usbi_disarm_timer
        - Branch String:   'io.c:1368,7'
          Branch Sides:
            - BranchSide:      'io.c:1369,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - usbi_log
                - usbi_disarm_timer
            - BranchSide:      'io.c:1372,9'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - usbi_log
                - usbi_disarm_timer
        - Branch String:   'io.c:1372,7'
          Branch Sides:
            - BranchSide:      'io.c:1373,39'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1377,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_disarm_timer
                - usbi_log
                - usbi_arm_timer
      Callsites:
        - Src:             'io.c:1360,7'
          Dst:             usbi_using_timer
        - Src:             'io.c:1374,4'
          Dst:             usbi_log
        - Src:             'io.c:1375,11'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1379,2'
          Dst:             usbi_log
        - Src:             'io.c:1380,9'
          Dst:             usbi_disarm_timer
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    34
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:50,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_timer_valid
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:871,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tp
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    3
      BranchProfiles:
        - Branch String:   './libusbi.h:554,2'
          Branch Sides:
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './libusbi.h:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    handle_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2050
      functionLinenumberEnd: 2062
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_cancel_transfer
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:2057,6'
          Branch Sides:
            - BranchSide:      'io.c:2058,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2060,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'io.c:2060,3'
          Branch Sides:
            - BranchSide:      'io.c:2060,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:2060,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'io.c:2056,6'
          Dst:             libusb_cancel_transfer
        - Src:             'io.c:2060,3'
          Dst:             usbi_log
    - functionName:    libusb_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1636
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         24
      ICount:          143
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1610,31'
          Branch Sides:
            - BranchSide:      'io.c:1610,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:1610,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:1616,4'
          Branch Sides:
            - BranchSide:      'io.c:1616,8'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:1617,5'
              BranchSideFuncs:
                - usbi_mutex_unlock
        - Branch String:   'io.c:1615,6'
          Branch Sides:
            - BranchSide:      'io.c:1617,5'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1620,19'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:1621,6'
          Branch Sides:
            - BranchSide:      'io.c:1622,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - usbi_log
            - BranchSide:      'io.c:1632,2'
              BranchSideFuncs:
                - usbi_mutex_unlock
        - Branch String:   'io.c:1622,35'
          Branch Sides:
            - BranchSide:      'io.c:1623,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - usbi_log
            - BranchSide:      'io.c:1626,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
        - Branch String:   'io.c:1622,7'
          Branch Sides:
            - BranchSide:      'io.c:1624,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1626,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
        - Branch String:   'io.c:1628,7'
          Branch Sides:
            - BranchSide:      'io.c:1629,4'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1630,2'
              BranchSideFuncs:
                - usbi_mutex_unlock
      Callsites:
        - Src:             'io.c:1613,2'
          Dst:             usbi_log
        - Src:             'io.c:1614,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1624,4'
          Dst:             usbi_log
        - Src:             'io.c:1626,4'
          Dst:             usbi_log
        - Src:             'io.c:1635,2'
          Dst:             usbi_mutex_unlock
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_event_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2184
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         46
      ICount:          314
      EdgeCount:       58
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - list_cut
        - list_del
        - list_init
        - list_splice_front
        - usbi_clear_event
        - usbi_hotplug_process
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:2120,6'
          Branch Sides:
            - BranchSide:      'io.c:2121,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2123,6'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2123,6'
          Branch Sides:
            - BranchSide:      'io.c:2124,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2128,6'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2128,6'
          Branch Sides:
            - BranchSide:      'io.c:2129,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
            - BranchSide:      'io.c:2135,6'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
                - usbi_log
        - Branch String:   'io.c:2135,6'
          Branch Sides:
            - BranchSide:      'io.c:2136,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
            - BranchSide:      'io.c:2139,6'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - usbi_log
                - list_cut
                - __assert_fail
        - Branch String:   'io.c:2139,6'
          Branch Sides:
            - BranchSide:      'io.c:2140,3'
              BranchSideFuncs:
                - usbi_log
                - list_cut
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
                - __assert_fail
            - BranchSide:      'io.c:2148,6'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
        - Branch String:   'io.c:2143,3'
          Branch Sides:
            - BranchSide:      'io.c:2143,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'io.c:2144,28'
              BranchSideFuncs:
                - list_cut
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - list_del
                - usbi_log
                - __assert_fail
        - Branch String:   'io.c:2148,6'
          Branch Sides:
            - BranchSide:      'io.c:2152,3'
              BranchSideFuncs:
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_del
                - usbi_log
                - __assert_fail
            - BranchSide:      'io.c:2175,7'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
        - Branch String:   'io.c:2152,3'
          Branch Sides:
            - BranchSide:      'io.c:2152,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'io.c:2153,35'
              BranchSideFuncs:
                - list_cut
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_del
                - usbi_log
        - Branch String:   'io.c:2156,3'
          Branch Sides:
            - BranchSide:      'io.c:2157,14'
              BranchSideFuncs:
                - list_del
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - usbi_log
            - BranchSide:      'io.c:2165,20'
              BranchSideFuncs:
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
        - Branch String:   'io.c:2159,8'
          Branch Sides:
            - BranchSide:      'io.c:2160,5'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
            - BranchSide:      'io.c:2163,3'
              BranchSideFuncs:
                - usbi_mutex_lock
                - list_splice_front
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
                - list_del
                - usbi_log
        - Branch String:   'io.c:2166,7'
          Branch Sides:
            - BranchSide:      'io.c:2168,45'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
            - BranchSide:      'io.c:2169,14'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_hotplug_process
        - Branch String:   'io.c:2175,6'
          Branch Sides:
            - BranchSide:      'io.c:2176,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_hotplug_process
            - BranchSide:      'io.c:2178,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_hotplug_process
        - Branch String:   'io.c:2181,6'
          Branch Sides:
            - BranchSide:      'io.c:2181,6'
              BranchSideFuncs:
                - usbi_hotplug_process
            - BranchSide:      'io.c:2182,24'
              BranchSideFuncs:
                - usbi_hotplug_process
      Callsites:
        - Src:             'io.c:2112,2'
          Dst:             usbi_log
        - Src:             'io.c:2114,2'
          Dst:             list_init
        - Src:             'io.c:2117,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2121,3'
          Dst:             usbi_log
        - Src:             'io.c:2124,3'
          Dst:             usbi_log
        - Src:             'io.c:2129,3'
          Dst:             usbi_log
        - Src:             'io.c:2136,3'
          Dst:             usbi_log
        - Src:             'io.c:2140,3'
          Dst:             usbi_log
        - Src:             'io.c:2143,3'
          Dst:             __assert_fail
        - Src:             'io.c:2144,3'
          Dst:             list_cut
        - Src:             'io.c:2152,3'
          Dst:             __assert_fail
        - Src:             'io.c:2153,3'
          Dst:             list_cut
        - Src:             'io.c:2154,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2157,4'
          Dst:             list_del
        - Src:             'io.c:2160,5'
          Dst:             usbi_log
        - Src:             'io.c:2165,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2168,4'
          Dst:             list_splice_front
        - Src:             'io.c:2176,3'
          Dst:             usbi_clear_event
        - Src:             'io.c:2178,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2182,3'
          Dst:             usbi_hotplug_process
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_start_event_handling
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:502,2'
          Dst:             usbi_tls_key_set
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
        - head
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    calculate_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1246
      functionLinenumberEnd: 1263
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         8
      ICount:          90
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:1250,6'
          Branch Sides:
            - BranchSide:      'io.c:1251,3'
              BranchSideFuncs:
                - usbi_get_monotonic_time
            - BranchSide:      'io.c:1255,27'
              BranchSideFuncs:
                - usbi_get_monotonic_time
        - Branch String:   'io.c:1259,6'
          Branch Sides:
            - BranchSide:      'io.c:1259,6'
              BranchSideFuncs: []
            - BranchSide:      'io.c:1260,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1255,2'
          Dst:             usbi_get_monotonic_time
    - functionName:    usbi_handle_disconnect
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2815
      functionLinenumberEnd: 2867
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         23
      ICount:          173
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:2816,31'
          Branch Sides:
            - BranchSide:      'io.c:2816,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2816,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_unlock
        - Branch String:   'io.c:2839,3'
          Branch Sides:
            - BranchSide:      'io.c:2840,43'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2851,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
                - usbi_mutex_unlock
        - Branch String:   'io.c:2841,8'
          Branch Sides:
            - BranchSide:      'io.c:2842,22'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
            - BranchSide:      'io.c:2850,3'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
                - usbi_mutex_unlock
        - Branch String:   'io.c:2843,9'
          Branch Sides:
            - BranchSide:      'io.c:2844,18'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
            - BranchSide:      'io.c:2845,24'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
        - Branch String:   'io.c:2847,9'
          Branch Sides:
            - BranchSide:      'io.c:2848,6'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2849,4'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_lock
                - usbi_mutex_unlock
        - Branch String:   'io.c:2853,7'
          Branch Sides:
            - BranchSide:      'io.c:2854,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2857,48'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - usbi_mutex_unlock
      Callsites:
        - Src:             'io.c:2820,2'
          Dst:             usbi_log
        - Src:             'io.c:2838,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2842,5'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2845,5'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2851,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2858,3'
          Dst:             usbi_log
        - Src:             'io.c:2862,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2864,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2865,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_handle_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1686
      functionLinenumberEnd: 1729
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - itransfer
        - status
      BBCount:         29
      ICount:          220
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - __assert_fail
        - libusb_free_transfer
        - libusb_lock_event_waiters
        - libusb_unlock_event_waiters
        - remove_from_flying_list
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    7
      BranchProfiles:
        - Branch String:   'io.c:1689,31'
          Branch Sides:
            - BranchSide:      'io.c:1689,25'
              BranchSideFuncs:
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:1689,25'
              BranchSideFuncs:
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:1696,6'
          Branch Sides:
            - BranchSide:      'io.c:1697,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
            - BranchSide:      'io.c:1699,19'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
        - Branch String:   'io.c:1704,4'
          Branch Sides:
            - BranchSide:      'io.c:1704,7'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
            - BranchSide:      'io.c:1714,10'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
        - Branch String:   'io.c:1703,6'
          Branch Sides:
            - BranchSide:      'io.c:1705,15'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
            - BranchSide:      'io.c:1714,10'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
        - Branch String:   'io.c:1706,7'
          Branch Sides:
            - BranchSide:      'io.c:1707,10'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
            - BranchSide:      'io.c:1708,7'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - usbi_log
        - Branch String:   'io.c:1708,7'
          Branch Sides:
            - BranchSide:      'io.c:1709,4'
              BranchSideFuncs:
                - usbi_log
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
            - BranchSide:      'io.c:1712,2'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
        - Branch String:   'io.c:1717,2'
          Branch Sides:
            - BranchSide:      'io.c:1717,2'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
            - BranchSide:      'io.c:1718,2'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
        - Branch String:   'io.c:1720,6'
          Branch Sides:
            - BranchSide:      'io.c:1721,30'
              BranchSideFuncs:
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - libusb_free_transfer
            - BranchSide:      'io.c:1727,6'
              BranchSideFuncs:
                - libusb_free_transfer
        - Branch String:   'io.c:1727,6'
          Branch Sides:
            - BranchSide:      'io.c:1727,6'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'io.c:1728,24'
              BranchSideFuncs:
                - libusb_free_transfer
      Callsites:
        - Src:             'io.c:1693,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1694,6'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1695,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1697,3'
          Dst:             usbi_log
        - Src:             'io.c:1699,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1701,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1709,4'
          Dst:             usbi_log
        - Src:             'io.c:1717,2'
          Dst:             __assert_fail
        - Src:             'io.c:1718,2'
          Dst:             usbi_log
        - Src:             'io.c:1721,3'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:1723,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:1728,3'
          Dst:             libusb_free_transfer
    - functionName:    remove_from_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1458
      functionLinenumberEnd: 1469
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         15
      ICount:          99
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - arm_timer_for_next_timeout
        - list_del
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1459,31'
          Branch Sides:
            - BranchSide:      'io.c:1459,25'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
            - BranchSide:      'io.c:1459,25'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
        - Branch String:   'io.c:1463,17'
          Branch Sides:
            - BranchSide:      'io.c:1463,17'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
            - BranchSide:      'io.c:1464,3'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
        - Branch String:   'io.c:1463,54'
          Branch Sides:
            - BranchSide:      'io.c:1463,54'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
            - BranchSide:      'io.c:1464,3'
              BranchSideFuncs:
                - list_del
                - arm_timer_for_next_timeout
        - Branch String:   'io.c:1466,6'
          Branch Sides:
            - BranchSide:      'io.c:1466,6'
              BranchSideFuncs:
                - arm_timer_for_next_timeout
            - BranchSide:      'io.c:1467,34'
              BranchSideFuncs:
                - arm_timer_for_next_timeout
      Callsites:
        - Src:             'io.c:1465,2'
          Dst:             list_del
        - Src:             'io.c:1467,7'
          Dst:             arm_timer_for_next_timeout
    - functionName:    libusb_lock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1988
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1986,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1987,2'
          Dst:             usbi_mutex_lock
    - functionName:    libusb_unlock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1996
      functionLinenumberEnd: 1999
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1997,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1998,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1348
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         18
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - libusb_unref_device
        - usbi_log
        - usbi_mutex_destroy
      functionUses:    6
      BranchProfiles:
        - Branch String:   'io.c:1333,6'
          Branch Sides:
            - BranchSide:      'io.c:1334,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
                - free
            - BranchSide:      'io.c:1336,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
                - free
        - Branch String:   'io.c:1336,2'
          Branch Sides:
            - BranchSide:      'io.c:1336,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
                - free
            - BranchSide:      'io.c:1336,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
                - free
        - Branch String:   'io.c:1337,6'
          Branch Sides:
            - BranchSide:      'io.c:1338,8'
              BranchSideFuncs:
                - free
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
            - BranchSide:      'io.c:1340,36'
              BranchSideFuncs:
                - usbi_mutex_destroy
                - __assert_fail
                - free
                - libusb_unref_device
        - Branch String:   'io.c:1342,6'
          Branch Sides:
            - BranchSide:      'io.c:1343,23'
              BranchSideFuncs:
                - libusb_unref_device
                - __assert_fail
                - free
            - BranchSide:      'io.c:1345,23'
              BranchSideFuncs:
                - __assert_fail
                - free
        - Branch String:   'io.c:1346,2'
          Branch Sides:
            - BranchSide:      'io.c:1346,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'io.c:1347,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'io.c:1336,2'
          Dst:             usbi_log
        - Src:             'io.c:1341,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1343,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1346,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    9
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:59,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         14
      ICount:          60
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    16
      BranchProfiles:
        - Branch String:   './libusbi.h:461,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:462,9'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:464,7'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:464,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:464,6'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:465,9'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:466,11'
          Branch Sides:
            - BranchSide:      './libusbi.h:466,14'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
        - Branch String:   './libusbi.h:466,7'
          Branch Sides:
            - BranchSide:      './libusbi.h:467,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    libusb_free_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2802
      functionLinenumberEnd: 2808
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pollfds
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2755
      functionLinenumberEnd: 2782
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         14
      ICount:          115
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'io.c:2769,2'
          Branch Sides:
            - BranchSide:      'io.c:2770,4'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2772,15'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_unlock
        - Branch String:   'io.c:2773,6'
          Branch Sides:
            - BranchSide:      'io.c:2774,3'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2776,4'
              BranchSideFuncs:
                - usbi_mutex_unlock
        - Branch String:   'io.c:2777,2'
          Branch Sides:
            - BranchSide:      'io.c:2778,38'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2778,38'
              BranchSideFuncs:
                - usbi_mutex_unlock
      Callsites:
        - Src:             'io.c:2764,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2766,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2772,8'
          Dst:             calloc
        - Src:             'io.c:2781,2'
          Dst:             usbi_mutex_unlock
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_event_source_notification
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2668
      functionLinenumberEnd: 2677
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_signal_event
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:2675,6'
          Branch Sides:
            - BranchSide:      'io.c:2675,6'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2676,22'
              BranchSideFuncs:
                - usbi_signal_event
      Callsites:
        - Src:             'io.c:2676,3'
          Dst:             usbi_signal_event
    - functionName:    libusb_set_pollfd_notifiers
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2648
      functionLinenumberEnd: 2661
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - added_cb
        - removed_cb
        - user_data
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2650,8'
          Dst:             usbi_get_context
    - functionName:    libusb_get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2575
      functionLinenumberEnd: 2622
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
      BBCount:         39
      ICount:          266
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - usbi_get_context
        - usbi_get_monotonic_time
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:2581,6'
          Branch Sides:
            - BranchSide:      'io.c:2582,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2584,19'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock
                - usbi_log
        - Branch String:   'io.c:2585,6'
          Branch Sides:
            - BranchSide:      'io.c:2586,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
            - BranchSide:      'io.c:2592,2'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2592,2'
          Branch Sides:
            - BranchSide:      'io.c:2593,7'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2603,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2593,7'
          Branch Sides:
            - BranchSide:      'io.c:2594,4'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2597,8'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2597,8'
          Branch Sides:
            - BranchSide:      'io.c:2597,8'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2600,18'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2597,7'
          Branch Sides:
            - BranchSide:      'io.c:2598,4'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2600,18'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_log
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2605,7'
          Branch Sides:
            - BranchSide:      'io.c:2605,7'
              BranchSideFuncs:
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2610,2'
              BranchSideFuncs:
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2605,6'
          Branch Sides:
            - BranchSide:      'io.c:2606,3'
              BranchSideFuncs:
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2610,2'
              BranchSideFuncs:
                - usbi_get_monotonic_time
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2612,6'
          Branch Sides:
            - BranchSide:      'io.c:2612,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
            - BranchSide:      'io.c:2612,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'io.c:2612,7'
          Branch Sides:
            - BranchSide:      'io.c:2613,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:2616,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'io.c:2612,6'
          Branch Sides:
            - BranchSide:      'io.c:2613,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:2616,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'io.c:2616,3'
          Branch Sides:
            - BranchSide:      'io.c:2616,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:2617,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'io.c:2580,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2581,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:2584,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2586,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2587,3'
          Dst:             usbi_log
        - Src:             'io.c:2603,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2606,3'
          Dst:             usbi_log
        - Src:             'io.c:2610,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2613,3'
          Dst:             usbi_log
        - Src:             'io.c:2618,3'
          Dst:             usbi_log
    - functionName:    libusb_pollfds_handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2540
      functionLinenumberEnd: 2542
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_using_timer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2541,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2542,9'
          Dst:             usbi_using_timer
    - functionName:    libusb_handle_events_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2493
      functionLinenumberEnd: 2509
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
      BBCount:         13
      ICount:          80
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_next_timeout
        - handle_events
        - handle_timeouts
        - usbi_get_context
      functionUses:    0
      BranchProfiles:
        - Branch String:   'io.c:2497,7'
          Branch Sides:
            - BranchSide:      'io.c:2497,7'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - handle_events
                - handle_timeouts
            - BranchSide:      'io.c:2498,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2497,7'
          Branch Sides:
            - BranchSide:      'io.c:2497,7'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - handle_events
                - handle_timeouts
            - BranchSide:      'io.c:2498,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2497,6'
          Branch Sides:
            - BranchSide:      'io.c:2498,3'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - handle_events
                - handle_timeouts
            - BranchSide:      'io.c:2500,25'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - handle_events
                - handle_timeouts
        - Branch String:   'io.c:2502,6'
          Branch Sides:
            - BranchSide:      'io.c:2504,19'
              BranchSideFuncs:
                - handle_timeouts
            - BranchSide:      'io.c:2508,23'
              BranchSideFuncs:
                - handle_events
      Callsites:
        - Src:             'io.c:2500,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2501,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2504,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2508,9'
          Dst:             handle_events
    - functionName:    get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2302
      functionLinenumberEnd: 2319
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
        - out
      BBCount:         21
      ICount:          113
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_get_next_timeout
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:2305,6'
          Branch Sides:
            - BranchSide:      'io.c:2307,8'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2316,4'
              BranchSideFuncs: []
        - Branch String:   'io.c:2307,8'
          Branch Sides:
            - BranchSide:      'io.c:2307,8'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2311,7'
              BranchSideFuncs: []
        - Branch String:   'io.c:2307,7'
          Branch Sides:
            - BranchSide:      'io.c:2308,4'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2311,7'
              BranchSideFuncs: []
        - Branch String:   'io.c:2311,7'
          Branch Sides:
            - BranchSide:      'io.c:2311,7'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2311,7'
              BranchSideFuncs: []
        - Branch String:   'io.c:2311,7'
          Branch Sides:
            - BranchSide:      'io.c:2312,5'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2314,5'
              BranchSideFuncs: []
        - Branch String:   'io.c:2311,7'
          Branch Sides:
            - BranchSide:      'io.c:2312,5'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2314,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:2304,10'
          Dst:             libusb_get_next_timeout
    - functionName:    handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2099
      functionLinenumberEnd: 2104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - handle_timeouts_locked
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2100,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2101,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2102,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2103,2'
          Dst:             usbi_mutex_unlock
    - functionName:    handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2209
      functionLinenumberEnd: 2292
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
      BBCount:         38
      ICount:          250
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - cleanup_removed_event_sources
        - handle_event_trigger
        - handle_timeouts
        - handle_timer_trigger
        - usbi_alloc_event_data
        - usbi_clear_event
        - usbi_end_event_handling
        - usbi_handling_events
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_start_event_handling
        - usbi_wait_for_events
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:2215,6'
          Branch Sides:
            - BranchSide:      'io.c:2216,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2221,19'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
                - usbi_log
                - cleanup_removed_event_sources
                - usbi_alloc_event_data
                - usbi_clear_event
                - usbi_mutex_unlock
        - Branch String:   'io.c:2222,6'
          Branch Sides:
            - BranchSide:      'io.c:2223,3'
              BranchSideFuncs:
                - usbi_log
                - cleanup_removed_event_sources
                - usbi_alloc_event_data
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2242,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
        - Branch String:   'io.c:2229,7'
          Branch Sides:
            - BranchSide:      'io.c:2230,23'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2235,3'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
        - Branch String:   'io.c:2239,7'
          Branch Sides:
            - BranchSide:      'io.c:2240,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
            - BranchSide:      'io.c:2241,2'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
        - Branch String:   'io.c:2247,6'
          Branch Sides:
            - BranchSide:      'io.c:2248,13'
              BranchSideFuncs:
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
            - BranchSide:      'io.c:2250,18'
              BranchSideFuncs:
                - usbi_start_event_handling
                - usbi_wait_for_events
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
                - handle_timeouts
        - Branch String:   'io.c:2255,6'
          Branch Sides:
            - BranchSide:      'io.c:2256,7'
              BranchSideFuncs:
                - usbi_end_event_handling
                - handle_timeouts
            - BranchSide:      'io.c:2263,22'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
                - handle_event_trigger
        - Branch String:   'io.c:2256,7'
          Branch Sides:
            - BranchSide:      'io.c:2257,20'
              BranchSideFuncs:
                - handle_timeouts
                - usbi_end_event_handling
            - BranchSide:      'io.c:2260,3'
              BranchSideFuncs:
                - usbi_end_event_handling
        - Branch String:   'io.c:2263,6'
          Branch Sides:
            - BranchSide:      'io.c:2264,28'
              BranchSideFuncs:
                - handle_event_trigger
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
            - BranchSide:      'io.c:2272,22'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
        - Branch String:   'io.c:2265,7'
          Branch Sides:
            - BranchSide:      'io.c:2267,4'
              BranchSideFuncs:
                - usbi_end_event_handling
            - BranchSide:      'io.c:2269,2'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
                - handle_timer_trigger
        - Branch String:   'io.c:2272,6'
          Branch Sides:
            - BranchSide:      'io.c:2273,28'
              BranchSideFuncs:
                - handle_timer_trigger
                - usbi_end_event_handling
                - usbi_log
            - BranchSide:      'io.c:2281,23'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
        - Branch String:   'io.c:2274,7'
          Branch Sides:
            - BranchSide:      'io.c:2276,4'
              BranchSideFuncs:
                - usbi_end_event_handling
            - BranchSide:      'io.c:2278,2'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
        - Branch String:   'io.c:2281,6'
          Branch Sides:
            - BranchSide:      'io.c:2282,3'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
            - BranchSide:      'io.c:2284,19'
              BranchSideFuncs:
                - usbi_end_event_handling
                - usbi_log
        - Branch String:   'io.c:2286,6'
          Branch Sides:
            - BranchSide:      'io.c:2286,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_end_event_handling
            - BranchSide:      'io.c:2287,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_end_event_handling
      Callsites:
        - Src:             'io.c:2215,6'
          Dst:             usbi_handling_events
        - Src:             'io.c:2221,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2223,3'
          Dst:             usbi_log
        - Src:             'io.c:2226,3'
          Dst:             cleanup_removed_event_sources
        - Src:             'io.c:2228,7'
          Dst:             usbi_alloc_event_data
        - Src:             'io.c:2230,4'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2240,4'
          Dst:             usbi_clear_event
        - Src:             'io.c:2242,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2252,2'
          Dst:             usbi_start_event_handling
        - Src:             'io.c:2254,6'
          Dst:             usbi_wait_for_events
        - Src:             'io.c:2257,4'
          Dst:             handle_timeouts
        - Src:             'io.c:2264,7'
          Dst:             handle_event_trigger
        - Src:             'io.c:2273,7'
          Dst:             handle_timer_trigger
        - Src:             'io.c:2287,3'
          Dst:             usbi_log
        - Src:             'io.c:2290,2'
          Dst:             usbi_end_event_handling
    - functionName:    cleanup_removed_event_sources
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         7
      ICount:          64
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - list_del
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1219,2'
          Branch Sides:
            - BranchSide:      'io.c:1220,13'
              BranchSideFuncs:
                - list_del
                - free
            - BranchSide:      'io.c:1223,1'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1220,3'
          Dst:             list_del
    - functionName:    libusb_handle_events_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2465
      functionLinenumberEnd: 2469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - completed
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2469,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2351
      functionLinenumberEnd: 2403
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
        - completed
      BBCount:         36
      ICount:          190
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - get_next_timeout
        - handle_events
        - handle_timeouts
        - libusb_event_handler_active
        - libusb_lock_event_waiters
        - libusb_try_lock_events
        - libusb_unlock_event_waiters
        - libusb_unlock_events
        - libusb_wait_for_event
        - usbi_get_context
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'io.c:2355,7'
          Branch Sides:
            - BranchSide:      'io.c:2355,7'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - handle_timeouts
            - BranchSide:      'io.c:2356,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2355,7'
          Branch Sides:
            - BranchSide:      'io.c:2355,7'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - handle_timeouts
            - BranchSide:      'io.c:2356,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2355,6'
          Branch Sides:
            - BranchSide:      'io.c:2356,3'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - handle_timeouts
            - BranchSide:      'io.c:2358,25'
              BranchSideFuncs:
                - usbi_get_context
                - get_next_timeout
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - handle_timeouts
        - Branch String:   'io.c:2360,6'
          Branch Sides:
            - BranchSide:      'io.c:2360,6'
              BranchSideFuncs:
                - handle_timeouts
            - BranchSide:      'io.c:2362,19'
              BranchSideFuncs:
                - handle_timeouts
        - Branch String:   'io.c:2367,6'
          Branch Sides:
            - BranchSide:      'io.c:2368,7'
              BranchSideFuncs:
                - usbi_log
                - handle_events
                - libusb_unlock_events
            - BranchSide:      'io.c:2379,28'
              BranchSideFuncs:
                - libusb_lock_event_waiters
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - libusb_try_lock_events
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
        - Branch String:   'io.c:2368,25'
          Branch Sides:
            - BranchSide:      'io.c:2368,30'
              BranchSideFuncs:
                - usbi_log
                - handle_events
                - libusb_unlock_events
            - BranchSide:      'io.c:2370,4'
              BranchSideFuncs:
                - usbi_log
                - handle_events
                - libusb_unlock_events
        - Branch String:   'io.c:2368,7'
          Branch Sides:
            - BranchSide:      'io.c:2370,4'
              BranchSideFuncs:
                - libusb_unlock_events
            - BranchSide:      'io.c:2373,24'
              BranchSideFuncs:
                - libusb_unlock_events
        - Branch String:   'io.c:2381,16'
          Branch Sides:
            - BranchSide:      'io.c:2381,20'
              BranchSideFuncs:
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
            - BranchSide:      'io.c:2384,35'
              BranchSideFuncs:
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - usbi_log
                - libusb_wait_for_event
        - Branch String:   'io.c:2381,6'
          Branch Sides:
            - BranchSide:      'io.c:2382,3'
              BranchSideFuncs:
                - libusb_unlock_event_waiters
                - handle_timeouts
            - BranchSide:      'io.c:2384,35'
              BranchSideFuncs:
                - libusb_event_handler_active
                - libusb_unlock_event_waiters
                - usbi_log
                - libusb_try_lock_events
                - libusb_lock_event_waiters
                - libusb_unlock_event_waiters
                - handle_timeouts
                - usbi_log
                - handle_events
                - libusb_unlock_events
                - usbi_log
                - libusb_wait_for_event
        - Branch String:   'io.c:2384,6'
          Branch Sides:
            - BranchSide:      'io.c:2387,31'
              BranchSideFuncs:
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
            - BranchSide:      'io.c:2392,2'
              BranchSideFuncs:
                - usbi_log
                - libusb_wait_for_event
                - libusb_unlock_event_waiters
                - handle_timeouts
        - Branch String:   'io.c:2398,6'
          Branch Sides:
            - BranchSide:      'io.c:2399,10'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2400,11'
              BranchSideFuncs:
                - handle_timeouts
      Callsites:
        - Src:             'io.c:2358,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2359,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2362,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2367,6'
          Dst:             libusb_try_lock_events
        - Src:             'io.c:2370,4'
          Dst:             usbi_log
        - Src:             'io.c:2371,8'
          Dst:             handle_events
        - Src:             'io.c:2373,3'
          Dst:             libusb_unlock_events
        - Src:             'io.c:2379,2'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:2384,7'
          Dst:             libusb_event_handler_active
        - Src:             'io.c:2387,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2388,3'
          Dst:             usbi_log
        - Src:             'io.c:2392,2'
          Dst:             usbi_log
        - Src:             'io.c:2393,6'
          Dst:             libusb_wait_for_event
        - Src:             'io.c:2396,2'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2401,3'
          Dst:             handle_timeouts
    - functionName:    libusb_try_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1798
      functionLinenumberEnd: 1820
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_trylock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:1809,6'
          Branch Sides:
            - BranchSide:      'io.c:1810,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:1814,26'
              BranchSideFuncs:
                - usbi_mutex_trylock
        - Branch String:   'io.c:1815,6'
          Branch Sides:
            - BranchSide:      'io.c:1816,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:1818,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1802,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1806,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1808,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1810,3'
          Dst:             usbi_log
        - Src:             'io.c:1814,6'
          Dst:             usbi_mutex_trylock
    - functionName:    libusb_unlock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1856
      functionLinenumberEnd: 1867
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_cond_broadcast
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1857,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1859,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1864,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1865,2'
          Dst:             usbi_cond_broadcast
        - Src:             'io.c:1866,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handler_active
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1920
      functionLinenumberEnd: 1936
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:1930,6'
          Branch Sides:
            - BranchSide:      'io.c:1931,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:1935,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1923,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1927,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1929,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1931,3'
          Dst:             usbi_log
    - functionName:    libusb_wait_for_event
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2028
      functionLinenumberEnd: 2046
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
      BBCount:         15
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_cond_timedwait
        - usbi_cond_wait
        - usbi_get_context
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:2032,6'
          Branch Sides:
            - BranchSide:      'io.c:2033,19'
              BranchSideFuncs:
                - usbi_cond_timedwait
            - BranchSide:      'io.c:2037,7'
              BranchSideFuncs:
                - usbi_cond_timedwait
        - Branch String:   'io.c:2037,7'
          Branch Sides:
            - BranchSide:      'io.c:2037,7'
              BranchSideFuncs:
                - usbi_cond_timedwait
            - BranchSide:      'io.c:2038,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2037,7'
          Branch Sides:
            - BranchSide:      'io.c:2037,7'
              BranchSideFuncs:
                - usbi_cond_timedwait
            - BranchSide:      'io.c:2038,3'
              BranchSideFuncs: []
        - Branch String:   'io.c:2037,6'
          Branch Sides:
            - BranchSide:      'io.c:2038,3'
              BranchSideFuncs:
                - usbi_cond_timedwait
            - BranchSide:      'io.c:2040,27'
              BranchSideFuncs:
                - usbi_cond_timedwait
        - Branch String:   'io.c:2042,6'
          Branch Sides:
            - BranchSide:      'io.c:2043,10'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2045,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:2031,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2033,3'
          Dst:             usbi_cond_wait
        - Src:             'io.c:2040,6'
          Dst:             usbi_cond_timedwait
    - functionName:    usbi_cond_wait
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
        - mutex
      BBCount:         6
      ICount:          32
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_wait
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:67,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:67,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:67,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:67,2'
          Dst:             pthread_cond_wait
        - Src:             './os/threads_posix.h:67,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_broadcast
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_broadcast
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:77,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:77,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:77,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:77,2'
          Dst:             pthread_cond_broadcast
        - Src:             './os/threads_posix.h:77,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_trylock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:54,22'
          Dst:             pthread_mutex_trylock
    - functionName:    pthread_mutex_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2442
      functionLinenumberEnd: 2446
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2446,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2423
      functionLinenumberEnd: 2424
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - tv
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2424,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_interrupt_event_handler
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1949
      functionLinenumberEnd: 1963
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:
        - Branch String:   'io.c:1959,6'
          Branch Sides:
            - BranchSide:      'io.c:1959,6'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1960,22'
              BranchSideFuncs:
                - usbi_signal_event
                - usbi_mutex_unlock
      Callsites:
        - Src:             'io.c:1952,2'
          Dst:             usbi_log
        - Src:             'io.c:1954,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1955,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1960,3'
          Dst:             usbi_signal_event
        - Src:             'io.c:1962,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handling_ok
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1891
      functionLinenumberEnd: 1907
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'io.c:1901,6'
          Branch Sides:
            - BranchSide:      'io.c:1902,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'io.c:1906,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1894,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1898,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1900,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1902,3'
          Dst:             usbi_log
    - functionName:    libusb_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1841
      functionLinenumberEnd: 1845
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1842,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1843,2'
          Dst:             usbi_mutex_lock
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
        - head
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_signal_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1761
      functionLinenumberEnd: 1776
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_add_tail
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:
        - Branch String:   'io.c:1764,6'
          Branch Sides:
            - BranchSide:      'io.c:1764,6'
              BranchSideFuncs:
                - usbi_mutex_lock
                - list_add_tail
                - usbi_signal_event
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1765,32'
              BranchSideFuncs:
                - usbi_mutex_lock
                - list_add_tail
                - usbi_signal_event
                - usbi_mutex_unlock
        - Branch String:   'io.c:1772,7'
          Branch Sides:
            - BranchSide:      'io.c:1773,23'
              BranchSideFuncs:
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1774,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
      Callsites:
        - Src:             'io.c:1768,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1771,3'
          Dst:             list_add_tail
        - Src:             'io.c:1773,4'
          Dst:             usbi_signal_event
        - Src:             'io.c:1774,3'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_handle_transfer_cancellation
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1739
      functionLinenumberEnd: 1755
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         9
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:
        - Branch String:   'io.c:1740,31'
          Branch Sides:
            - BranchSide:      'io.c:1740,25'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_handle_transfer_completion
            - BranchSide:      'io.c:1740,25'
              BranchSideFuncs:
                - usbi_mutex_lock
                - usbi_mutex_unlock
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_handle_transfer_completion
        - Branch String:   'io.c:1748,6'
          Branch Sides:
            - BranchSide:      'io.c:1749,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_handle_transfer_completion
            - BranchSide:      'io.c:1754,41'
              BranchSideFuncs:
                - usbi_handle_transfer_completion
      Callsites:
        - Src:             'io.c:1743,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1745,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1749,3'
          Dst:             usbi_log
        - Src:             'io.c:1750,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'io.c:1754,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    libusb_transfer_get_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1669
      functionLinenumberEnd: 1673
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_transfer_set_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1652
      functionLinenumberEnd: 1657
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - transfer
        - stream_id
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_to_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1395
      functionLinenumberEnd: 1449
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         44
      ICount:          287
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - calculate_timeout
        - list_add
        - list_add_tail
        - list_del
        - usbi_arm_timer
        - usbi_log
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:1398,31'
          Branch Sides:
            - BranchSide:      'io.c:1398,25'
              BranchSideFuncs:
                - calculate_timeout
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
                - list_add_tail
                - list_add
            - BranchSide:      'io.c:1398,25'
              BranchSideFuncs:
                - calculate_timeout
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
                - list_add_tail
                - list_add
        - Branch String:   'io.c:1405,6'
          Branch Sides:
            - BranchSide:      'io.c:1406,13'
              BranchSideFuncs:
                - list_add
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1411,7'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
                - list_add_tail
        - Branch String:   'io.c:1411,7'
          Branch Sides:
            - BranchSide:      'io.c:1411,7'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1418,2'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1411,6'
          Branch Sides:
            - BranchSide:      'io.c:1412,18'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1418,2'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1418,2'
          Branch Sides:
            - BranchSide:      'io.c:1420,30'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1431,17'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
        - Branch String:   'io.c:1422,8'
          Branch Sides:
            - BranchSide:      'io.c:1422,35'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1422,8'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1422,32'
          Branch Sides:
            - BranchSide:      'io.c:1422,35'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1423,19'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
        - Branch String:   'io.c:1422,7'
          Branch Sides:
            - BranchSide:      'io.c:1422,35'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
            - BranchSide:      'io.c:1422,35'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1422,35'
          Branch Sides:
            - BranchSide:      'io.c:1423,19'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1426,9'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1422,7'
          Branch Sides:
            - BranchSide:      'io.c:1423,19'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1426,9'
              BranchSideFuncs:
                - list_add_tail
                - list_del
                - usbi_using_timer
                - usbi_log
                - usbi_arm_timer
                - list_add_tail
        - Branch String:   'io.c:1434,12'
          Branch Sides:
            - BranchSide:      'io.c:1434,32'
              BranchSideFuncs:
                - usbi_using_timer
                - list_del
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1446,6'
              BranchSideFuncs:
                - list_del
        - Branch String:   'io.c:1434,37'
          Branch Sides:
            - BranchSide:      'io.c:1434,40'
              BranchSideFuncs:
                - list_del
                - usbi_log
                - usbi_arm_timer
            - BranchSide:      'io.c:1446,6'
              BranchSideFuncs:
                - list_del
        - Branch String:   'io.c:1434,40'
          Branch Sides:
            - BranchSide:      'io.c:1434,40'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - list_del
            - BranchSide:      'io.c:1437,38'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - list_del
        - Branch String:   'io.c:1434,6'
          Branch Sides:
            - BranchSide:      'io.c:1437,38'
              BranchSideFuncs:
                - usbi_log
                - usbi_arm_timer
                - list_del
            - BranchSide:      'io.c:1446,6'
              BranchSideFuncs:
                - list_del
        - Branch String:   'io.c:1446,6'
          Branch Sides:
            - BranchSide:      'io.c:1446,6'
              BranchSideFuncs:
                - list_del
            - BranchSide:      'io.c:1447,13'
              BranchSideFuncs:
                - list_del
      Callsites:
        - Src:             'io.c:1402,2'
          Dst:             calculate_timeout
        - Src:             'io.c:1406,3'
          Dst:             list_add
        - Src:             'io.c:1412,3'
          Dst:             list_add_tail
        - Src:             'io.c:1423,4'
          Dst:             list_add_tail
        - Src:             'io.c:1431,2'
          Dst:             list_add_tail
        - Src:             'io.c:1434,15'
          Dst:             usbi_using_timer
        - Src:             'io.c:1438,3'
          Dst:             usbi_log
        - Src:             'io.c:1440,7'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1447,3'
          Dst:             list_del
    - functionName:    libusb_submit_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1487
      functionLinenumberEnd: 1568
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         23
      ICount:          191
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - add_to_flying_list
        - libusb_ref_device
        - libusb_unref_device
        - remove_from_flying_list
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1493,2'
          Branch Sides:
            - BranchSide:      'io.c:1493,2'
              BranchSideFuncs:
                - libusb_ref_device
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - libusb_unref_device
            - BranchSide:      'io.c:1494,6'
              BranchSideFuncs:
                - libusb_ref_device
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - libusb_unref_device
        - Branch String:   'io.c:1494,6'
          Branch Sides:
            - BranchSide:      'io.c:1495,23'
              BranchSideFuncs:
                - libusb_unref_device
                - libusb_ref_device
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1496,37'
              BranchSideFuncs:
                - libusb_ref_device
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
        - Branch String:   'io.c:1498,8'
          Branch Sides:
            - BranchSide:      'io.c:1498,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1498,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - usbi_mutex_lock
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
        - Branch String:   'io.c:1535,6'
          Branch Sides:
            - BranchSide:      'io.c:1536,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1540,2'
              BranchSideFuncs:
                - add_to_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_unlock
        - Branch String:   'io.c:1544,6'
          Branch Sides:
            - BranchSide:      'io.c:1545,22'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1553,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
        - Branch String:   'io.c:1556,6'
          Branch Sides:
            - BranchSide:      'io.c:1557,3'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1559,21'
              BranchSideFuncs:
                - usbi_mutex_unlock
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
        - Branch String:   'io.c:1561,6'
          Branch Sides:
            - BranchSide:      'io.c:1562,20'
              BranchSideFuncs:
                - usbi_mutex_lock
                - remove_from_flying_list
                - usbi_mutex_unlock
            - BranchSide:      'io.c:1567,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1493,2'
          Dst:             __assert_fail
        - Src:             'io.c:1495,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1496,19'
          Dst:             libusb_ref_device
        - Src:             'io.c:1499,2'
          Dst:             usbi_log
        - Src:             'io.c:1533,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1534,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1536,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1537,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1543,6'
          Dst:             add_to_flying_list
        - Src:             'io.c:1545,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1546,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1553,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1559,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1562,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1563,3'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1564,3'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_alloc_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - iso_packets
      BBCount:         11
      ICount:          104
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - calloc
        - usbi_mutex_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'io.c:1292,2'
          Branch Sides:
            - BranchSide:      'io.c:1292,2'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init
            - BranchSide:      'io.c:1293,6'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init
        - Branch String:   'io.c:1293,6'
          Branch Sides:
            - BranchSide:      'io.c:1294,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:1296,21'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init
        - Branch String:   'io.c:1302,6'
          Branch Sides:
            - BranchSide:      'io.c:1303,3'
              BranchSideFuncs:
                - usbi_mutex_init
            - BranchSide:      'io.c:1305,61'
              BranchSideFuncs:
                - usbi_mutex_init
      Callsites:
        - Src:             'io.c:1292,2'
          Dst:             __assert_fail
        - Src:             'io.c:1301,23'
          Dst:             calloc
        - Src:             'io.c:1308,2'
          Dst:             usbi_mutex_init
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    5
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:42,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_exit
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          70
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cleanup_removed_event_sources
        - usbi_cond_destroy
        - usbi_destroy_event
        - usbi_destroy_timer
        - usbi_mutex_destroy
        - usbi_remove_event_source
        - usbi_tls_key_delete
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'io.c:1228,6'
          Branch Sides:
            - BranchSide:      'io.c:1228,6'
              BranchSideFuncs:
                - usbi_remove_event_source
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
                - cleanup_removed_event_sources
                - free
            - BranchSide:      'io.c:1229,28'
              BranchSideFuncs:
                - usbi_remove_event_source
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
                - cleanup_removed_event_sources
                - free
      Callsites:
        - Src:             'io.c:1228,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:1229,3'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1230,3'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1233,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1234,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1235,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1236,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1237,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1238,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1239,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1240,2'
          Dst:             usbi_tls_key_delete
        - Src:             'io.c:1241,2'
          Dst:             cleanup_removed_event_sources
    - functionName:    usbi_remove_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2707
      functionLinenumberEnd: 2735
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - os_handle
      BBCount:         15
      ICount:          123
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - list_add_tail
        - list_del
        - usbi_event_source_notification
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    5
      BranchProfiles:
        - Branch String:   'io.c:2713,2'
          Branch Sides:
            - BranchSide:      'io.c:2714,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2720,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
        - Branch String:   'io.c:2714,7'
          Branch Sides:
            - BranchSide:      'io.c:2715,10'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2718,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
        - Branch String:   'io.c:2720,6'
          Branch Sides:
            - BranchSide:      'io.c:2721,3'
              BranchSideFuncs:
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2726,12'
              BranchSideFuncs:
                - list_del
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
        - Branch String:   'io.c:2732,6'
          Branch Sides:
            - BranchSide:      'io.c:2732,6'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2733,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:2711,2'
          Dst:             usbi_log
        - Src:             'io.c:2712,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2721,3'
          Dst:             usbi_log
        - Src:             'io.c:2722,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2726,2'
          Dst:             list_del
        - Src:             'io.c:2727,2'
          Dst:             list_add_tail
        - Src:             'io.c:2728,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2729,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_cond_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_destroy
      functionUses:    2
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:81,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:81,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:81,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:81,2'
          Dst:             pthread_cond_destroy
        - Src:             './os/threads_posix.h:81,2'
          Dst:             __assert_fail
    - functionName:    usbi_tls_key_delete
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - key
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_delete
      functionUses:    2
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:99,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:99,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:99,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:99,2'
          Dst:             pthread_key_delete
        - Src:             './os/threads_posix.h:99,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_add_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2683
      functionLinenumberEnd: 2703
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ctx
        - os_handle
        - poll_events
      BBCount:         9
      ICount:          88
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_add_tail
        - usbi_event_source_notification
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:
        - Branch String:   'io.c:2686,6'
          Branch Sides:
            - BranchSide:      'io.c:2687,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
            - BranchSide:      'io.c:2689,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock
                - list_add_tail
                - usbi_event_source_notification
                - usbi_mutex_unlock
        - Branch String:   'io.c:2698,6'
          Branch Sides:
            - BranchSide:      'io.c:2699,3'
              BranchSideFuncs: []
            - BranchSide:      'io.c:2702,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:2689,2'
          Dst:             usbi_log
        - Src:             'io.c:2692,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2693,2'
          Dst:             list_add_tail
        - Src:             'io.c:2694,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2695,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_tls_key_create
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:87,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:87,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:87,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:87,2'
          Dst:             pthread_key_create
        - Src:             './os/threads_posix.h:87,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_init
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         16
      ICount:          154
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - list_init
        - usbi_add_event_source
        - usbi_cond_destroy
        - usbi_cond_init
        - usbi_create_event
        - usbi_create_timer
        - usbi_destroy_event
        - usbi_destroy_timer
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_remove_event_source
        - usbi_tls_key_create
        - usbi_tls_key_delete
      functionUses:    1
      BranchProfiles:
        - Branch String:   'io.c:1177,6'
          Branch Sides:
            - BranchSide:      'io.c:1178,3'
              BranchSideFuncs:
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
            - BranchSide:      'io.c:1180,28'
              BranchSideFuncs:
                - usbi_add_event_source
                - usbi_create_timer
                - usbi_log
                - usbi_log
                - usbi_add_event_source
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
        - Branch String:   'io.c:1181,6'
          Branch Sides:
            - BranchSide:      'io.c:1182,3'
              BranchSideFuncs:
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
            - BranchSide:      'io.c:1185,25'
              BranchSideFuncs:
                - usbi_create_timer
                - usbi_log
                - usbi_log
                - usbi_add_event_source
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
        - Branch String:   'io.c:1186,6'
          Branch Sides:
            - BranchSide:      'io.c:1187,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_add_event_source
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
            - BranchSide:      'io.c:1192,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'io.c:1189,7'
          Branch Sides:
            - BranchSide:      'io.c:1190,4'
              BranchSideFuncs:
                - usbi_destroy_timer
                - usbi_remove_event_source
                - usbi_destroy_event
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_mutex_destroy
                - usbi_cond_destroy
                - usbi_mutex_destroy
                - usbi_tls_key_delete
            - BranchSide:      'io.c:1191,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'io.c:1164,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1165,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1166,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1167,2'
          Dst:             usbi_cond_init
        - Src:             'io.c:1168,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1169,2'
          Dst:             usbi_tls_key_create
        - Src:             'io.c:1170,2'
          Dst:             list_init
        - Src:             'io.c:1171,2'
          Dst:             list_init
        - Src:             'io.c:1172,2'
          Dst:             list_init
        - Src:             'io.c:1173,2'
          Dst:             list_init
        - Src:             'io.c:1174,2'
          Dst:             list_init
        - Src:             'io.c:1176,6'
          Dst:             usbi_create_event
        - Src:             'io.c:1180,6'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1185,6'
          Dst:             usbi_create_timer
        - Src:             'io.c:1187,3'
          Dst:             usbi_log
        - Src:             'io.c:1188,7'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1192,3'
          Dst:             usbi_log
        - Src:             'io.c:1200,2'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1201,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1204,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1206,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1207,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1208,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1209,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1210,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1211,2'
          Dst:             usbi_tls_key_delete
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:50,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:46,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 871
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_timer_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:871,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_wait_for_events
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - reported_events
        - timeout_ms
      BBCount:         47
      ICount:          344
      EdgeCount:       61
      CyclomaticComplexity: 16
      functionsReached:
        - __assert_fail
        - __errno_location
        - poll
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/events_posix.c:268,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:269,24'
              BranchSideFuncs:
                - usbi_using_timer.403
            - BranchSide:      'os/events_posix.c:272,13'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/events_posix.c:269,7'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:270,4'
              BranchSideFuncs: []
            - BranchSide:      'os/events_posix.c:271,3'
              BranchSideFuncs: []
        - Branch String:   'os/events_posix.c:273,7'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:274,4'
              BranchSideFuncs: []
            - BranchSide:      'os/events_posix.c:275,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/events_posix.c:280,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:281,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:284,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:289,28'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:289,31'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:293,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:289,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:290,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:293,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:297,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:298,3'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:304,34'
              BranchSideFuncs:
                - usbi_using_timer.403
                - usbi_mutex_lock.400
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:309,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:312,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:329,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
        - Branch String:   'os/events_posix.c:312,3'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:315,11'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:328,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
        - Branch String:   'os/events_posix.c:315,4'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:316,9'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:327,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:316,9'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:317,6'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
            - BranchSide:      'os/events_posix.c:318,10'
              BranchSideFuncs:
                - usbi_mutex_unlock.396
                - __assert_fail
                - usbi_log
        - Branch String:   'os/events_posix.c:318,9'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:319,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.396
                - __assert_fail
            - BranchSide:      'os/events_posix.c:322,5'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.396
                - __assert_fail
        - Branch String:   'os/events_posix.c:331,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:331,6'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'os/events_posix.c:332,3'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'os/events_posix.c:332,3'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:332,3'
              BranchSideFuncs: []
            - BranchSide:      'os/events_posix.c:333,33'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:257,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:266,14'
          Dst:             poll
        - Src:             'os/events_posix.c:267,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:269,7'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:273,7'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:275,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:275,3'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:289,6'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:304,17'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:308,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/events_posix.c:322,5'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:329,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/events_posix.c:332,3'
          Dst:             __assert_fail
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    87
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_alloc_event_data
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         17
      ICount:          151
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/events_posix.c:227,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:228,8'
              BranchSideFuncs:
                - free
                - calloc
            - BranchSide:      'os/events_posix.c:232,2'
              BranchSideFuncs:
                - calloc
        - Branch String:   'os/events_posix.c:233,2'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:234,3'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'os/events_posix.c:236,15'
              BranchSideFuncs:
                - calloc
        - Branch String:   'os/events_posix.c:237,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:238,3'
              BranchSideFuncs: []
            - BranchSide:      'os/events_posix.c:240,2'
              BranchSideFuncs: []
        - Branch String:   'os/events_posix.c:240,2'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:241,15'
              BranchSideFuncs: []
            - BranchSide:      'os/events_posix.c:246,20'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:236,8'
          Dst:             calloc
    - functionName:    usbi_disarm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/events_posix.c:212,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:213,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:217,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:212,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:213,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:213,3'
          Dst:             usbi_log
    - functionName:    timerfd_settime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_arm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
        - timeout
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/events_posix.c:200,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:201,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:205,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:200,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:201,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:201,3'
          Dst:             usbi_log
    - functionName:    usbi_destroy_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/events_posix.c:192,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:192,6'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:193,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/events_posix.c:192,6'
          Dst:             close
        - Src:             'os/events_posix.c:193,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:193,3'
          Dst:             usbi_log
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_create_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - timer
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_create
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/events_posix.c:182,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:183,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:187,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:181,19'
          Dst:             timerfd_create
        - Src:             'os/events_posix.c:183,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:183,3'
          Dst:             usbi_log
    - functionName:    timerfd_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_clear_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - read
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/events_posix.c:171,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:171,6'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/events_posix.c:172,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/events_posix.c:170,6'
          Dst:             read
        - Src:             'os/events_posix.c:172,3'
          Dst:             usbi_log
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_signal_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
        - write
      functionUses:    7
      BranchProfiles:
        - Branch String:   'os/events_posix.c:157,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:157,6'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/events_posix.c:158,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/events_posix.c:156,6'
          Dst:             write
        - Src:             'os/events_posix.c:158,3'
          Dst:             usbi_log
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_destroy_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    4
      BranchProfiles:
        - Branch String:   'os/events_posix.c:141,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:141,6'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:142,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/events_posix.c:141,6'
          Dst:             close
        - Src:             'os/events_posix.c:142,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:142,3'
          Dst:             usbi_log
    - functionName:    usbi_create_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - eventfd
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/events_posix.c:76,6'
          Branch Sides:
            - BranchSide:      'os/events_posix.c:77,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/events_posix.c:81,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/events_posix.c:75,19'
          Dst:             eventfd
        - Src:             'os/events_posix.c:77,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:77,3'
          Dst:             usbi_log
    - functionName:    eventfd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_tid
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_self
        - syscall
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/threads_posix.c:88,6'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:86,16'
              BranchSideFuncs:
                - syscall
                - pthread_self
            - BranchSide:      'os/threads_posix.c:88,6'
              BranchSideFuncs:
                - syscall
                - pthread_self
        - Branch String:   'os/threads_posix.c:88,6'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:89,10'
              BranchSideFuncs: []
            - BranchSide:      'os/threads_posix.c:107,23'
              BranchSideFuncs:
                - syscall
                - pthread_self
        - Branch String:   'os/threads_posix.c:118,6'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:122,35'
              BranchSideFuncs:
                - pthread_self
            - BranchSide:      'os/threads_posix.c:125,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/threads_posix.c:107,23'
          Dst:             syscall
        - Src:             'os/threads_posix.c:122,35'
          Dst:             pthread_self
    - functionName:    syscall
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tp
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    1
      BranchProfiles:
        - Branch String:   './libusbi.h:554,2'
          Branch Sides:
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './libusbi.h:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    usbi_cond_timedwait
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
        - mutex
        - tv
      BBCount:         11
      ICount:          90
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_cond_timedwait
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/threads_posix.c:69,6'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:70,11'
              BranchSideFuncs:
                - pthread_cond_timedwait
            - BranchSide:      'os/threads_posix.c:74,29'
              BranchSideFuncs:
                - pthread_cond_timedwait
        - Branch String:   'os/threads_posix.c:75,6'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:76,3'
              BranchSideFuncs: []
            - BranchSide:      'os/threads_posix.c:77,11'
              BranchSideFuncs: []
        - Branch String:   'os/threads_posix.c:77,11'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:78,3'
              BranchSideFuncs: []
            - BranchSide:      'os/threads_posix.c:80,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/threads_posix.c:62,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'os/threads_posix.c:74,6'
          Dst:             pthread_cond_timedwait
    - functionName:    pthread_cond_timedwait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_init
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cond
      BBCount:         15
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_init
        - pthread_condattr_destroy
        - pthread_condattr_init
        - pthread_condattr_setclock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/threads_posix.c:46,2'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:46,2'
              BranchSideFuncs:
                - pthread_condattr_setclock
                - __assert_fail
                - pthread_cond_init
                - __assert_fail
                - pthread_condattr_destroy
                - __assert_fail
            - BranchSide:      'os/threads_posix.c:47,2'
              BranchSideFuncs:
                - pthread_condattr_setclock
                - __assert_fail
                - pthread_cond_init
                - __assert_fail
                - pthread_condattr_destroy
                - __assert_fail
        - Branch String:   'os/threads_posix.c:47,2'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:47,2'
              BranchSideFuncs:
                - pthread_cond_init
                - __assert_fail
                - pthread_condattr_destroy
                - __assert_fail
            - BranchSide:      'os/threads_posix.c:48,2'
              BranchSideFuncs:
                - pthread_cond_init
                - __assert_fail
                - pthread_condattr_destroy
                - __assert_fail
        - Branch String:   'os/threads_posix.c:48,2'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:48,2'
              BranchSideFuncs:
                - pthread_condattr_destroy
                - __assert_fail
            - BranchSide:      'os/threads_posix.c:49,2'
              BranchSideFuncs:
                - pthread_condattr_destroy
                - __assert_fail
        - Branch String:   'os/threads_posix.c:49,2'
          Branch Sides:
            - BranchSide:      'os/threads_posix.c:49,2'
              BranchSideFuncs: []
            - BranchSide:      'os/threads_posix.c:49,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'os/threads_posix.c:46,2'
          Dst:             pthread_condattr_init
        - Src:             'os/threads_posix.c:46,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:47,2'
          Dst:             pthread_condattr_setclock
        - Src:             'os/threads_posix.c:47,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:48,2'
          Dst:             pthread_cond_init
        - Src:             'os/threads_posix.c:48,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:49,2'
          Dst:             pthread_condattr_destroy
        - Src:             'os/threads_posix.c:49,2'
          Dst:             __assert_fail
    - functionName:    pthread_condattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_setclock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_control_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2654
      functionLinenumberEnd: 2711
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
        - urb
      BBCount:         47
      ICount:          302
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2659,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2659,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2659,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2663,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2664,7'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2673,10'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2664,19'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2664,22'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2667,8'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2664,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2665,4'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2667,8'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2665,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2667,8'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2667,8'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2673,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2675,10'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2678,10'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2682,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2682,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2686,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2690,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2698,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2698,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2698,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2698,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2698,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2702,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2682,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2686,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2690,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2698,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2702,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2707,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
      Callsites:
        - Src:             'os/linux_usbfs.c:2655,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2658,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2659,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2665,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2669,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2670,10'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2682,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2686,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2690,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2698,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2702,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2709,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2710,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_get_transfer_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 915
      functionLinenumberEnd: 916
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    6
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:46,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:50,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    handle_bulk_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2397
      functionLinenumberEnd: 2530
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
        - urb
      BBCount:         101
      ICount:          699
      EdgeCount:       127
      CyclomaticComplexity: 28
      functionsReached:
        - discard_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2403,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2403,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2403,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2408,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2410,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2451,28'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2410,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2410,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2410,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2428,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2429,28'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2441,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2431,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2431,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2431,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2432,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2433,5'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2438,30'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2433,5'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2438,30'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2438,30'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2441,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2442,4'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2448,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2442,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2442,4'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2442,4'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2443,46'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2444,8'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2446,4'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2443,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2445,5'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2446,4'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2456,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2458,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - discard_urbs
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2460,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - discard_urbs
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2463,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - discard_urbs
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2463,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - discard_urbs
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2466,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2466,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2470,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2476,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2485,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2485,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2485,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2485,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2485,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2489,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2466,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2470,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2470,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2470,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2471,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2472,4'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2473,3'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2476,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2476,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2476,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2477,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2478,4'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2479,3'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2485,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2489,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2509,6'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2496,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2497,3'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2499,13'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - discard_urbs
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2497,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2524,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2524,7'
              BranchSideFuncs:
                - usbi_log
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2499,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2500,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2505,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2500,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2500,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2500,3'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2502,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2503,4'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2504,2'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2509,34'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2509,37'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2512,6'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2509,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2510,3'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2512,6'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2512,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2513,3'
              BranchSideFuncs:
                - free
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2517,15'
              BranchSideFuncs:
                - discard_urbs
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2527,9'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2528,37'
              BranchSideFuncs:
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2529,35'
              BranchSideFuncs:
                - usbi_handle_transfer_completion
      Callsites:
        - Src:             'os/linux_usbfs.c:2398,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2402,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2403,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2410,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2431,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2433,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2442,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2466,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2470,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2476,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2485,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2489,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2497,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2500,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2517,2'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2520,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2526,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2528,3'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2529,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    discard_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1913
      functionLinenumberEnd: 1943
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - itransfer
        - first
        - last_plus_one
      BBCount:         30
      ICount:          203
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    4
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1922,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1923,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1943,9'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1923,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1924,10'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1926,11'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1928,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1929,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1931,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - ioctl
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1931,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1932,4'
              BranchSideFuncs:
                - usbi_log
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1935,14'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - ioctl
                - __errno_location
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1932,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1932,4'
              BranchSideFuncs:
                - usbi_log
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1932,4'
              BranchSideFuncs:
                - usbi_log
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1933,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1934,9'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1935,3'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1935,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1936,4'
              BranchSideFuncs:
                - usbi_log
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1939,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - ioctl
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1916,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1918,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1928,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1931,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1932,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1935,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1936,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1939,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1939,4'
          Dst:             usbi_log
    - functionName:    usbi_get_device_handle_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 910
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    21
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_iso_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2534
      functionLinenumberEnd: 2650
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
        - urb
      BBCount:         87
      ICount:          594
      EdgeCount:       105
      CyclomaticComplexity: 20
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2544,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2545,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:2550,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2545,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2546,14'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:2549,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2550,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2551,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:2556,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2551,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2551,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:2551,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2556,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2561,14'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2561,14'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2561,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2562,45'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2604,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2567,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2569,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2572,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2572,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2575,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2575,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2579,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2583,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2596,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2575,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2579,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2583,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2592,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2596,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2601,29'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2606,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2607,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2623,10'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2607,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2607,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2607,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2609,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2610,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2620,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2610,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2610,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2610,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
        - Branch String:   'os/linux_usbfs.c:2612,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2613,24'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_cancellation
            - BranchSide:      'os/linux_usbfs.c:2616,24'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2623,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2625,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2628,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2628,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2630,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2634,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2630,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2640,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2640,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2634,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2640,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2640,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2640,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2640,28'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2641,3'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
        - Branch String:   'os/linux_usbfs.c:2641,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2641,3'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
            - BranchSide:      'os/linux_usbfs.c:2641,3'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
                - usbi_mutex_unlock.547
                - usbi_handle_transfer_completion
      Callsites:
        - Src:             'os/linux_usbfs.c:2537,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2543,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2551,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2552,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2556,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2575,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2579,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2583,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2592,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2596,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2607,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2610,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2611,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2613,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2614,12'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2616,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2617,12'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2630,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2634,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2641,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2642,3'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2643,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2644,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2648,2'
          Dst:             usbi_mutex_unlock
    - functionName:    free_iso_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1947
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tpriv
      BBCount:         10
      ICount:          63
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1950,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1950,2'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'os/linux_usbfs.c:1951,27'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'os/linux_usbfs.c:1953,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1954,4'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'os/linux_usbfs.c:1955,8'
              BranchSideFuncs:
                - free
                - free
      Callsites:       []
    - functionName:    reap_for_handle
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2714
      functionLinenumberEnd: 2750
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         26
      ICount:          180
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - handle_bulk_completion
        - handle_control_completion
        - handle_iso_completion
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2722,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2723,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2732,14'
              BranchSideFuncs:
                - usbi_log
                - handle_control_completion
                - handle_bulk_completion
                - handle_iso_completion
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2723,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2724,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2725,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2725,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2726,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2728,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2728,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2728,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2728,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2735,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2735,2'
              BranchSideFuncs:
                - usbi_log
                - handle_control_completion
                - handle_bulk_completion
                - handle_iso_completion
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2735,2'
              BranchSideFuncs:
                - usbi_log
                - handle_control_completion
                - handle_bulk_completion
                - handle_iso_completion
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2737,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2739,32'
              BranchSideFuncs:
                - handle_iso_completion
            - BranchSide:      'os/linux_usbfs.c:2743,33'
              BranchSideFuncs:
                - handle_bulk_completion
            - BranchSide:      'os/linux_usbfs.c:2743,33'
              BranchSideFuncs:
                - handle_bulk_completion
            - BranchSide:      'os/linux_usbfs.c:2743,33'
              BranchSideFuncs:
                - handle_bulk_completion
            - BranchSide:      'os/linux_usbfs.c:2745,36'
              BranchSideFuncs:
                - handle_control_completion
            - BranchSide:      'os/linux_usbfs.c:2747,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2747,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2747,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2747,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:2715,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2721,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2723,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2725,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2728,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2728,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2735,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2739,10'
          Dst:             handle_iso_completion
        - Src:             'os/linux_usbfs.c:2743,10'
          Dst:             handle_bulk_completion
        - Src:             'os/linux_usbfs.c:2745,10'
          Dst:             handle_control_completion
        - Src:             'os/linux_usbfs.c:2747,3'
          Dst:             usbi_log
    - functionName:    submit_iso_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2135
      functionLinenumberEnd: 2279
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         67
      ICount:          538
      EdgeCount:       89
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - free_iso_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2150,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2151,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2158,9'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2158,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2159,16'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2171,6'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2161,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2162,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2168,16'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2162,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2162,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2162,4'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2171,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2172,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2175,14'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2177,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2177,2'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2177,2'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2180,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2181,3'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2183,20'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2191,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2192,28'
              BranchSideFuncs:
                - calloc
                - free_iso_urbs
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2226,9'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2192,28'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2192,7'
              BranchSideFuncs:
                - calloc
                - free_iso_urbs
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2192,7'
              BranchSideFuncs:
                - calloc
                - free_iso_urbs
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2200,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2201,18'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2204,13'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2207,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2208,17'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2213,22'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
                - calloc
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2226,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2227,17'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2278,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2229,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2230,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2232,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2232,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2233,6'
              BranchSideFuncs:
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2234,14'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2234,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2235,4'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2237,14'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2237,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2238,4'
              BranchSideFuncs:
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2241,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - discard_urbs
                - usbi_log
                - usbi_log
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2247,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2248,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2266,3'
              BranchSideFuncs:
                - discard_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2248,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2248,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2248,4'
              BranchSideFuncs:
                - usbi_log
                - free_iso_urbs
        - Branch String:   'os/linux_usbfs.c:2273,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2273,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2273,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:2138,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2140,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2162,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2177,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2179,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2199,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2201,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2227,11'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2232,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2234,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2235,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2237,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2238,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2241,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2241,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2248,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2249,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2271,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2273,3'
          Dst:             usbi_log
    - functionName:    submit_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1963
      functionLinenumberEnd: 2132
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         88
      ICount:          615
      EdgeCount:       116
      CyclomaticComplexity: 30
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1996,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1998,21'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2000,13'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1998,21'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1998,40'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1998,19'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2000,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2003,19'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2005,13'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2005,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2008,21'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2015,19'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2008,21'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2008,40'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2008,19'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2021,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2022,12'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2023,14'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2027,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2027,2'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2027,2'
              BranchSideFuncs:
                - usbi_log
                - calloc
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2029,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2030,3'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2031,16'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2037,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2038,28'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2131,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2041,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2043,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2047,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2051,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2054,19'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2058,29'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2058,33'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2061,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2058,40'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2058,44'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2061,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2058,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2059,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2061,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2061,25'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2061,28'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2063,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2061,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2062,25'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2063,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2063,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2064,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2066,25'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2068,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2068,16'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2072,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2068,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2069,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2072,7'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2072,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2072,17'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2076,13'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2072,35'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2073,8'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2076,13'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2072,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2074,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2076,13'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2077,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2078,4'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2080,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2080,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2081,6'
              BranchSideFuncs:
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2082,14'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2082,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2083,6'
              BranchSideFuncs:
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2085,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - __errno_location
                - discard_urbs
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2091,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2092,4'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2114,24'
              BranchSideFuncs:
                - __errno_location
                - discard_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2092,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2092,4'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:2092,4'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:2121,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2122,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2124,16'
              BranchSideFuncs:
                - discard_urbs
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2126,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2126,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2126,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1966,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1968,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2027,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2028,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2076,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2080,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2082,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2085,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2085,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2092,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2114,24'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2124,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2126,3'
          Dst:             usbi_log
    - functionName:    submit_control_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2282
      functionLinenumberEnd: 2318
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         15
      ICount:          151
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - calloc
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2291,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2292,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2294,8'
              BranchSideFuncs:
                - calloc
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2295,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2296,3'
              BranchSideFuncs:
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2297,16'
              BranchSideFuncs:
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2308,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2309,8'
              BranchSideFuncs:
                - free
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2317,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2311,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2312,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2314,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2314,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2314,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2314,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:2283,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2287,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2294,8'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2307,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2311,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2314,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2314,3'
          Dst:             usbi_log
    - functionName:    do_streams_ioctl
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1683
      functionLinenumberEnd: 1715
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - req
        - num_streams
        - endpoints
        - num_endpoints
      BBCount:         21
      ICount:          151
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1688,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1689,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1691,38'
              BranchSideFuncs:
                - malloc
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1692,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1693,3'
              BranchSideFuncs:
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1695,25'
              BranchSideFuncs:
                - ioctl
                - free
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1703,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1704,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1714,9'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1704,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1705,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1706,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1706,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1707,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1708,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1711,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1711,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1711,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1684,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1699,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1704,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1706,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1708,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1711,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1711,3'
          Dst:             usbi_log
    - functionName:    release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1568
      functionLinenumberEnd: 1581
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - iface
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1573,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1574,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1580,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1574,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1575,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1577,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1577,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1577,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1577,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1569,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1571,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1574,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1577,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1577,3'
          Dst:             usbi_log
    - functionName:    claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1548
      functionLinenumberEnd: 1565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - iface
      BBCount:         17
      ICount:          98
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1553,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1554,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1564,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1554,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1555,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1556,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1556,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1557,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1558,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1561,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1561,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1561,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1549,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1551,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1554,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1556,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1558,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1561,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1561,3'
          Dst:             usbi_log
    - functionName:    detach_kernel_driver_and_claim
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1878
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         20
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - claim_interface
        - ioctl
        - op_detach_kernel_driver
        - strcpy
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1855,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1856,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1857,10'
              BranchSideFuncs:
                - __errno_location
                - op_detach_kernel_driver
                - claim_interface
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1857,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1859,3'
              BranchSideFuncs:
                - op_detach_kernel_driver
                - claim_interface
            - BranchSide:      'os/linux_usbfs.c:1861,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1863,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1865,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1867,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1867,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1867,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1867,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1874,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1874,16'
              BranchSideFuncs:
                - claim_interface
            - BranchSide:      'os/linux_usbfs.c:1877,25'
              BranchSideFuncs:
                - claim_interface
        - Branch String:   'os/linux_usbfs.c:1874,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1875,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1877,25'
              BranchSideFuncs:
                - claim_interface
      Callsites:
        - Src:             'os/linux_usbfs.c:1847,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1852,2'
          Dst:             strcpy
        - Src:             'os/linux_usbfs.c:1854,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1857,10'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1867,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1867,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1873,6'
          Dst:             op_detach_kernel_driver
        - Src:             'os/linux_usbfs.c:1877,9'
          Dst:             claim_interface
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1780
      functionLinenumberEnd: 1810
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         22
      ICount:          140
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1793,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1793,31'
              BranchSideFuncs:
                - strcmp
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1796,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1793,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1794,3'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1796,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1797,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1798,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1809,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1798,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1799,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1800,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1800,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1801,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1802,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1805,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1805,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1805,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1781,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1792,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1793,17'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1796,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1798,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1800,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1802,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1805,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1805,3'
          Dst:             usbi_log
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sysfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 621
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - config
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_sysfs_attr
        - usbi_get_device_priv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:622,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:624,9'
          Dst:             read_sysfs_attr
    - functionName:    usbi_get_device_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - sysfs_dir
        - attr
        - max_value
        - value_p
      BBCount:         41
      ICount:          285
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - close
        - open_sysfs_attr
        - read
        - strtol
        - usbi_log
      functionUses:    4
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:548,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:549,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:551,11'
              BranchSideFuncs:
                - read
                - close
                - __ctype_b_loc
                - usbi_log
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
                - usbi_log
                - __errno_location
                - close
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:552,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:553,7'
              BranchSideFuncs:
                - __errno_location
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:560,8'
              BranchSideFuncs:
                - close
                - __ctype_b_loc
                - usbi_log
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:555,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:556,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:557,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:562,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:565,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:571,7'
              BranchSideFuncs:
                - __ctype_b_loc
                - usbi_log
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:571,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:572,3'
              BranchSideFuncs:
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:574,17'
              BranchSideFuncs:
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:574,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:575,3'
              BranchSideFuncs:
                - usbi_log
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:578,4'
              BranchSideFuncs:
                - __errno_location
                - strtol
                - __errno_location
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:584,20'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:584,23'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:585,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:584,33'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:584,36'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:585,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:584,60'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:584,63'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:585,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:584,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:585,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:587,14'
              BranchSideFuncs:
                - usbi_log
                - __ctype_b_loc
                - __ctype_b_loc
        - Branch String:   'os/linux_usbfs.c:592,22'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:592,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - usbi_log
                - __ctype_b_loc
            - BranchSide:      'os/linux_usbfs.c:597,8'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:592,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:593,10'
              BranchSideFuncs:
                - __ctype_b_loc
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:597,8'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:594,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:595,11'
              BranchSideFuncs:
                - __ctype_b_loc
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:596,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:597,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:598,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:601,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:547,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:551,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:553,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:554,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:557,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:560,2'
          Dst:             close
        - Src:             'os/linux_usbfs.c:571,7'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:572,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:575,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:582,2'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:583,10'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:584,63'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:585,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:592,25'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:594,11'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:598,4'
          Dst:             usbi_log
    - functionName:    open_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - sysfs_dir
        - attr
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - open
        - snprintf
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:525,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:526,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:535,9'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:526,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:529,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:531,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:523,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:524,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:526,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:531,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:531,3'
          Dst:             usbi_log
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    open
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initialize_handle
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1382
      functionLinenumberEnd: 1397
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - fd
      BBCount:         18
      ICount:          111
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_add_event_source
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1389,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1390,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_add_event_source
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1397,31'
              BranchSideFuncs:
                - usbi_add_event_source
        - Branch String:   'os/linux_usbfs.c:1390,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1391,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_add_event_source
            - BranchSide:      'os/linux_usbfs.c:1393,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_add_event_source
        - Branch String:   'os/linux_usbfs.c:1391,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1394,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_add_event_source
            - BranchSide:      'os/linux_usbfs.c:1394,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_add_event_source
        - Branch String:   'os/linux_usbfs.c:1393,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1394,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_add_event_source
            - BranchSide:      'os/linux_usbfs.c:1394,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_add_event_source
        - Branch String:   'os/linux_usbfs.c:1397,31'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1397,31'
              BranchSideFuncs:
                - usbi_add_event_source
            - BranchSide:      'os/linux_usbfs.c:1397,31'
              BranchSideFuncs:
                - usbi_add_event_source
      Callsites:
        - Src:             'os/linux_usbfs.c:1383,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1388,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1390,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1391,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1393,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1393,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1397,9'
          Dst:             usbi_add_event_source
    - functionName:    linux_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_hotplug_poll
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.h:206,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.h:206,2'
              BranchSideFuncs:
                - linux_udev_hotplug_poll
            - BranchSide:      'os/linux_usbfs.h:206,2'
              BranchSideFuncs:
                - linux_udev_hotplug_poll
      Callsites:
        - Src:             'os/linux_usbfs.h:206,2'
          Dst:             linux_udev_hotplug_poll
    - functionName:    is_usbdev_entry
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - bus_p
        - dev_p
      BBCount:         21
      ICount:          106
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __isoc99_sscanf
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:238,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:239,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:240,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:240,17'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:240,20'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:241,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:240,39'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:240,42'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:241,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:240,53'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:240,56'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:241,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:240,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:241,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:245,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:246,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:247,21'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:248,6'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:248,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:249,21'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:250,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:238,6'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:241,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:245,2'
          Dst:             usbi_log
    - functionName:    __isoc99_sscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_stop_event_monitor
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.h:197,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.h:197,2'
              BranchSideFuncs:
                - linux_udev_stop_event_monitor
            - BranchSide:      'os/linux_usbfs.h:197,2'
              BranchSideFuncs:
                - linux_udev_stop_event_monitor
      Callsites:
        - Src:             'os/linux_usbfs.h:197,2'
          Dst:             linux_udev_stop_event_monitor
    - functionName:    linux_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_scan_devices
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:499,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:502,8'
          Dst:             linux_udev_scan_devices
        - Src:             'os/linux_usbfs.c:507,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    5
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:32,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    5
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:36,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    linux_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_start_event_monitor
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.h:176,9'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.h:176,9'
              BranchSideFuncs:
                - linux_udev_start_event_monitor
            - BranchSide:      'os/linux_usbfs.h:176,9'
              BranchSideFuncs:
                - linux_udev_start_event_monitor
      Callsites:
        - Src:             'os/linux_usbfs.h:176,9'
          Dst:             linux_udev_start_event_monitor
    - functionName:    find_usbfs_path
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         28
      ICount:          134
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - closedir
        - is_usbdev_entry
        - opendir
        - readdir
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:259,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:255,14'
              BranchSideFuncs:
                - opendir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
                - readdir
                - closedir
            - BranchSide:      'os/linux_usbfs.c:259,7'
              BranchSideFuncs:
                - opendir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
                - readdir
                - closedir
        - Branch String:   'os/linux_usbfs.c:261,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:262,3'
              BranchSideFuncs:
                - readdir
                - closedir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
            - BranchSide:      'os/linux_usbfs.c:277,7'
              BranchSideFuncs:
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
        - Branch String:   'os/linux_usbfs.c:262,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:263,8'
              BranchSideFuncs:
                - closedir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
                - readdir
            - BranchSide:      'os/linux_usbfs.c:270,12'
              BranchSideFuncs:
                - closedir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
        - Branch String:   'os/linux_usbfs.c:263,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:264,5'
              BranchSideFuncs:
                - readdir
                - closedir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
            - BranchSide:      'os/linux_usbfs.c:267,4'
              BranchSideFuncs:
                - closedir
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
        - Branch String:   'os/linux_usbfs.c:272,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:273,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:274,2'
              BranchSideFuncs:
                - opendir
                - readdir
                - closedir
                - is_usbdev_entry
        - Branch String:   'os/linux_usbfs.c:279,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:280,3'
              BranchSideFuncs:
                - readdir
                - closedir
                - is_usbdev_entry
            - BranchSide:      'os/linux_usbfs.c:304,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:280,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:281,8'
              BranchSideFuncs:
                - is_usbdev_entry
                - readdir
                - closedir
            - BranchSide:      'os/linux_usbfs.c:290,12'
              BranchSideFuncs:
                - closedir
        - Branch String:   'os/linux_usbfs.c:281,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:282,5'
              BranchSideFuncs:
                - readdir
                - closedir
                - is_usbdev_entry
            - BranchSide:      'os/linux_usbfs.c:284,24'
              BranchSideFuncs:
                - is_usbdev_entry
                - readdir
                - closedir
        - Branch String:   'os/linux_usbfs.c:284,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:280,3'
              BranchSideFuncs:
                - closedir
            - BranchSide:      'os/linux_usbfs.c:286,5'
              BranchSideFuncs:
                - closedir
        - Branch String:   'os/linux_usbfs.c:292,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:293,17'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:296,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:260,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:262,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:270,3'
          Dst:             closedir
        - Src:             'os/linux_usbfs.c:278,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:280,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:284,8'
          Dst:             is_usbdev_entry
        - Src:             'os/linux_usbfs.c:290,3'
          Dst:             closedir
    - functionName:    opendir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    closedir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kernel_version_ge
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ver
        - major
        - minor
        - sublevel
      BBCount:         14
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:338,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:339,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:340,11'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:344,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:345,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:346,11'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:350,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:351,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:353,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    get_kernel_version
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 333
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - ver
      BBCount:         11
      ICount:          80
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - uname
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:316,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:317,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:321,21'
              BranchSideFuncs:
                - __isoc99_sscanf
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:322,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:323,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:327,6'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:327,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:328,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:330,2'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:316,6'
          Dst:             uname
        - Src:             'os/linux_usbfs.c:317,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:317,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:321,10'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:323,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:330,2'
          Dst:             usbi_log
    - functionName:    uname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_context_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 900
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sysfs_scan_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 608
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - devname
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - linux_enumerate_device
        - linux_get_device_address
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:613,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:614,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:616,32'
              BranchSideFuncs:
                - linux_enumerate_device
      Callsites:
        - Src:             'os/linux_usbfs.c:612,8'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:616,9'
          Dst:             linux_enumerate_device
    - functionName:    linux_get_device_address
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - detached
        - busnum
        - devaddr
        - dev_node
        - sys_name
        - fd
      BBCount:         28
      ICount:          194
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - __isoc99_sscanf
        - read_sysfs_attr
        - readlink
        - snprintf
        - strncmp
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:638,23'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:638,26'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
                - snprintf
                - readlink
                - usbi_log
                - read_sysfs_attr
                - read_sysfs_attr
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:639,8'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
                - snprintf
                - readlink
        - Branch String:   'os/linux_usbfs.c:638,35'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:638,39'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
                - snprintf
                - readlink
            - BranchSide:      'os/linux_usbfs.c:639,8'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
                - snprintf
                - readlink
        - Branch String:   'os/linux_usbfs.c:638,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:639,8'
              BranchSideFuncs:
                - usbi_log
                - read_sysfs_attr
                - read_sysfs_attr
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:664,2'
              BranchSideFuncs:
                - usbi_log
                - read_sysfs_attr
                - read_sysfs_attr
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:639,17'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:639,20'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
            - BranchSide:      'os/linux_usbfs.c:652,8'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
        - Branch String:   'os/linux_usbfs.c:639,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:640,20'
              BranchSideFuncs:
                - snprintf
                - readlink
                - strncmp
                - __isoc99_sscanf
            - BranchSide:      'os/linux_usbfs.c:652,8'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
        - Branch String:   'os/linux_usbfs.c:646,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:647,5'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
            - BranchSide:      'os/linux_usbfs.c:650,3'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
        - Branch String:   'os/linux_usbfs.c:652,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:653,4'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
            - BranchSide:      'os/linux_usbfs.c:656,16'
              BranchSideFuncs:
                - strncmp
                - __isoc99_sscanf
        - Branch String:   'os/linux_usbfs.c:656,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:657,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:659,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:667,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:668,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:669,21'
              BranchSideFuncs:
                - read_sysfs_attr
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:672,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:673,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:674,22'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:635,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:644,4'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:645,8'
          Dst:             readlink
        - Src:             'os/linux_usbfs.c:656,8'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:657,4'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:664,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:666,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:671,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:676,2'
          Dst:             usbi_log
    - functionName:    linux_enumerate_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1152
      functionLinenumberEnd: 1194
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - busnum
        - devaddr
        - sysfs_dir
      BBCount:         18
      ICount:          143
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - initialize_device
        - libusb_unref_device
        - linux_get_parent_info
        - usbi_alloc_device
        - usbi_connect_device
        - usbi_get_device_by_session_id
        - usbi_log
        - usbi_sanitize_device
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1164,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1166,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1171,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_alloc_device
                - initialize_device
                - usbi_sanitize_device
                - linux_get_parent_info
                - usbi_connect_device
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1174,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1175,3'
              BranchSideFuncs:
                - initialize_device
                - usbi_sanitize_device
                - linux_get_parent_info
                - usbi_connect_device
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1177,24'
              BranchSideFuncs:
                - initialize_device
                - usbi_sanitize_device
                - linux_get_parent_info
                - usbi_connect_device
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1178,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1179,3'
              BranchSideFuncs:
                - usbi_connect_device
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1180,27'
              BranchSideFuncs:
                - usbi_sanitize_device
                - linux_get_parent_info
                - usbi_connect_device
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1181,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1182,3'
              BranchSideFuncs:
                - usbi_connect_device
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1184,28'
              BranchSideFuncs:
                - linux_get_parent_info
                - usbi_connect_device
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1185,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1185,10'
              BranchSideFuncs:
                - usbi_connect_device
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1186,3'
              BranchSideFuncs:
                - usbi_connect_device
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1188,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1189,23'
              BranchSideFuncs:
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1191,23'
              BranchSideFuncs:
                - usbi_connect_device
      Callsites:
        - Src:             'os/linux_usbfs.c:1161,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1163,8'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1166,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1167,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1171,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1173,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1177,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1180,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1184,6'
          Dst:             linux_get_parent_info
        - Src:             'os/linux_usbfs.c:1189,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1191,3'
          Dst:             usbi_connect_device
    - functionName:    initialize_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 952
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev
        - busnum
        - devaddr
        - sysfs_dir
        - wrapped_fd
      BBCount:         70
      ICount:          458
      EdgeCount:       91
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - close
        - get_usbfs_fd
        - lseek
        - open_sysfs_attr
        - parse_config_descriptors
        - read
        - read_sysfs_attr
        - strdup
        - usbfs_get_active_config
        - usbfs_get_speed
        - usbi_get_device_priv
        - usbi_localize_device_descriptor
        - usbi_log
        - usbi_reallocf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:962,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:963,28'
              BranchSideFuncs:
                - strdup
                - read_sysfs_attr
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:981,13'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
                - usbfs_get_speed
        - Branch String:   'os/linux_usbfs.c:964,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:965,4'
              BranchSideFuncs:
                - read_sysfs_attr
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:969,23'
              BranchSideFuncs:
                - read_sysfs_attr
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:969,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:970,12'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:981,2'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
        - Branch String:   'os/linux_usbfs.c:970,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:971,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:972,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:973,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:974,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:975,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:976,16'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
            - BranchSide:      'os/linux_usbfs.c:978,5'
              BranchSideFuncs:
                - usbi_log
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
                - open_sysfs_attr
        - Branch String:   'os/linux_usbfs.c:986,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:987,24'
              BranchSideFuncs:
                - open_sysfs_attr
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:988,13'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - get_usbfs_fd
        - Branch String:   'os/linux_usbfs.c:988,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:989,21'
              BranchSideFuncs:
                - get_usbfs_fd
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:991,8'
              BranchSideFuncs:
                - lseek
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:993,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:0,0'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:994,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:998,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:999,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1001,12'
              BranchSideFuncs:
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
        - Branch String:   'os/linux_usbfs.c:1008,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1009,8'
              BranchSideFuncs:
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - usbi_reallocf
                - close
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:1013,25'
              BranchSideFuncs:
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - usbi_reallocf
                - close
                - __errno_location
                - usbi_log
                - close
        - Branch String:   'os/linux_usbfs.c:1009,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1010,11'
              BranchSideFuncs:
                - close
            - BranchSide:      'os/linux_usbfs.c:1011,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1015,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1016,11'
              BranchSideFuncs:
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - usbi_reallocf
                - close
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:1017,13'
              BranchSideFuncs:
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - usbi_reallocf
                - close
                - __errno_location
                - usbi_log
                - close
        - Branch String:   'os/linux_usbfs.c:1018,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1019,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:1024,36'
              BranchSideFuncs:
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - usbi_reallocf
                - close
                - read
                - __errno_location
                - usbi_log
                - close
        - Branch String:   'os/linux_usbfs.c:1020,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1021,11'
              BranchSideFuncs:
                - close
            - BranchSide:      'os/linux_usbfs.c:1022,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1025,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1003,16'
              BranchSideFuncs:
                - usbi_reallocf
                - close
                - read
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
                - __errno_location
                - usbi_log
                - close
            - BranchSide:      'os/linux_usbfs.c:1027,6'
              BranchSideFuncs:
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
                - close
        - Branch String:   'os/linux_usbfs.c:1027,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1028,9'
              BranchSideFuncs:
                - close
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1030,6'
              BranchSideFuncs:
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1030,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1031,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1035,31'
              BranchSideFuncs:
                - parse_config_descriptors
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
        - Branch String:   'os/linux_usbfs.c:1036,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1037,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1039,10'
              BranchSideFuncs:
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
                - usbi_localize_device_descriptor
        - Branch String:   'os/linux_usbfs.c:1041,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1043,36'
              BranchSideFuncs:
                - usbi_localize_device_descriptor
            - BranchSide:      'os/linux_usbfs.c:1048,6'
              BranchSideFuncs:
                - usbfs_get_active_config
                - close
                - usbi_log
                - get_usbfs_fd
        - Branch String:   'os/linux_usbfs.c:1048,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1049,21'
              BranchSideFuncs:
                - get_usbfs_fd
                - usbfs_get_active_config
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1051,8'
              BranchSideFuncs:
                - usbfs_get_active_config
                - close
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1052,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1055,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1065,30'
              BranchSideFuncs:
                - usbfs_get_active_config
                - close
        - Branch String:   'os/linux_usbfs.c:1057,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1058,31'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1060,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1066,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1067,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'os/linux_usbfs.c:1069,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:953,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:963,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:969,7'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:978,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:982,16'
          Dst:             usbfs_get_speed
        - Src:             'os/linux_usbfs.c:987,8'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:989,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:992,7'
          Dst:             lseek
        - Src:             'os/linux_usbfs.c:994,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:994,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1007,23'
          Dst:             usbi_reallocf
        - Src:             'os/linux_usbfs.c:1010,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1017,8'
          Dst:             read
        - Src:             'os/linux_usbfs.c:1019,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1019,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1021,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1028,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1031,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1035,6'
          Dst:             parse_config_descriptors
        - Src:             'os/linux_usbfs.c:1043,3'
          Dst:             usbi_localize_device_descriptor
        - Src:             'os/linux_usbfs.c:1049,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1055,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1065,6'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1067,3'
          Dst:             close
    - functionName:    linux_get_parent_info
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1073
      functionLinenumberEnd: 1148
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - sysfs_dir
      BBCount:         48
      ICount:          302
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - asprintf
        - libusb_ref_device
        - strchr
        - strcmp
        - strdup
        - strncmp
        - strrchr
        - strtol
        - sysfs_scan_device
        - usbi_get_device_priv
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1080,17'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1080,29'
              BranchSideFuncs:
                - strncmp
                - strdup
                - strrchr
                - strrchr
                - usbi_log
                - free
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1082,3'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1080,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1082,3'
              BranchSideFuncs:
                - strdup
                - strrchr
                - strrchr
                - usbi_log
                - free
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1085,28'
              BranchSideFuncs:
                - strdup
                - strrchr
                - strrchr
                - usbi_log
                - free
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1086,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1087,3'
              BranchSideFuncs:
                - strrchr
                - strrchr
                - usbi_log
                - free
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1089,21'
              BranchSideFuncs:
                - strrchr
                - strrchr
                - usbi_log
                - free
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1089,45'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1090,21'
              BranchSideFuncs:
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1091,23'
              BranchSideFuncs:
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1089,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1091,23'
              BranchSideFuncs:
                - strtol
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1103,3'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1093,23'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1093,26'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1094,4'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1093,48'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1093,51'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1094,4'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1093,64'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1093,76'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1094,4'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1093,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1094,4'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1099,28'
              BranchSideFuncs:
                - strchr
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1110,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1110,35'
              BranchSideFuncs:
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
            - BranchSide:      'os/linux_usbfs.c:1111,9'
              BranchSideFuncs:
                - asprintf
                - free
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1114,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1115,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1116,2'
              BranchSideFuncs:
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1121,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1122,57'
              BranchSideFuncs:
                - usbi_get_device_priv
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - strcmp
                - libusb_ref_device
            - BranchSide:      'os/linux_usbfs.c:1131,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1124,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1125,16'
              BranchSideFuncs:
                - strcmp
                - libusb_ref_device
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_get_device_priv
            - BranchSide:      'os/linux_usbfs.c:1130,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1125,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1126,41'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
            - BranchSide:      'os/linux_usbfs.c:1129,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
        - Branch String:   'os/linux_usbfs.c:1133,23'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1133,26'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'os/linux_usbfs.c:1141,2'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'os/linux_usbfs.c:1133,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1134,3'
              BranchSideFuncs:
                - usbi_log
                - sysfs_scan_device
                - usbi_mutex_lock.546
                - usbi_mutex_unlock.547
                - usbi_log
                - free
                - usbi_get_device_priv
                - strcmp
                - libusb_ref_device
            - BranchSide:      'os/linux_usbfs.c:1141,2'
              BranchSideFuncs:
                - usbi_log
                - free
      Callsites:
        - Src:             'os/linux_usbfs.c:1080,21'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:1085,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:1089,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1090,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1092,22'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:1094,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1103,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1110,7'
          Dst:             strchr
        - Src:             'os/linux_usbfs.c:1112,9'
          Dst:             asprintf
        - Src:             'os/linux_usbfs.c:1120,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1122,36'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1125,9'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1126,23'
          Dst:             libusb_ref_device
        - Src:             'os/linux_usbfs.c:1131,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:1134,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1136,3'
          Dst:             sysfs_scan_device
        - Src:             'os/linux_usbfs.c:1141,2'
          Dst:             usbi_log
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strdup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    asprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbfs_get_speed
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 931
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - fd
      BBCount:         13
      ICount:          72
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - ioctl
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:935,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:936,28'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:937,25'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:938,26'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:939,26'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:940,29'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:941,27'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:942,31'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:944,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:934,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:944,3'
          Dst:             usbi_log
    - functionName:    get_usbfs_fd
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - dev
        - access_mode
        - silent
      BBCount:         29
      ICount:          190
      EdgeCount:       39
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - nanosleep
        - open
        - snprintf
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:193,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:194,12'
              BranchSideFuncs:
                - snprintf
                - open
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - nanosleep
                - open
            - BranchSide:      'os/linux_usbfs.c:197,12'
              BranchSideFuncs:
                - snprintf
                - open
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - nanosleep
                - open
        - Branch String:   'os/linux_usbfs.c:201,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:202,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:204,6'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - nanosleep
                - open
        - Branch String:   'os/linux_usbfs.c:204,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:205,14'
              BranchSideFuncs:
                - usbi_log
                - nanosleep
                - open
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:219,7'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:208,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:209,4'
              BranchSideFuncs:
                - nanosleep
                - open
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:212,3'
              BranchSideFuncs:
                - nanosleep
                - open
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:215,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:216,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:217,2'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:219,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:220,3'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
            - BranchSide:      'os/linux_usbfs.c:225,6'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'os/linux_usbfs.c:221,23'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:221,26'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:223,2'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'os/linux_usbfs.c:221,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:222,4'
              BranchSideFuncs:
                - usbi_log
                - __errno_location
                - __errno_location
            - BranchSide:      'os/linux_usbfs.c:223,2'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
        - Branch String:   'os/linux_usbfs.c:225,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:226,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:227,6'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'os/linux_usbfs.c:227,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:228,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:229,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:194,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:197,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:200,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:204,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:209,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:212,3'
          Dst:             nanosleep
        - Src:             'os/linux_usbfs.c:214,8'
          Dst:             open
        - Src:             'os/linux_usbfs.c:220,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:220,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:221,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:222,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:225,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:227,6'
          Dst:             __errno_location
    - functionName:    lseek
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_reallocf
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ptr
        - size
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   './libusbi.h:266,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:266,6'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:267,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             './libusbi.h:264,14'
          Dst:             realloc
    - functionName:    parse_config_descriptors
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         41
      ICount:          328
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - libusb_cpu_to_le16
        - seek_to_next_config
        - usbi_get_device_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:735,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:736,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:738,36'
              BranchSideFuncs:
                - malloc
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:739,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:740,3'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:742,22'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:745,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:749,7'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:816,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:749,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:750,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:755,57'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:756,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:757,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:760,14'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:767,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:768,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:772,7'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
        - Branch String:   'os/linux_usbfs.c:772,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:781,8'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
            - BranchSide:      'os/linux_usbfs.c:800,8'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:781,24'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:781,27'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
            - BranchSide:      'os/linux_usbfs.c:787,34'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:781,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:782,34'
              BranchSideFuncs:
                - seek_to_next_config
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:787,34'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:783,9'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:784,13'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:785,34'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:790,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:791,5'
              BranchSideFuncs:
                - usbi_log
                - libusb_cpu_to_le16
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:795,3'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:806,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:807,4'
              BranchSideFuncs:
                - usbi_log
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:809,40'
              BranchSideFuncs:
                - libusb_cpu_to_le16
                - usbi_log
                - usbi_log
                - usbi_log
                - seek_to_next_config
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:726,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:750,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:757,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:761,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:766,16'
          Dst:             libusb_cpu_to_le16
        - Src:             'os/linux_usbfs.c:768,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:782,14'
          Dst:             seek_to_next_config
        - Src:             'os/linux_usbfs.c:791,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:801,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:807,4'
          Dst:             usbi_log
    - functionName:    usbi_localize_device_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - desc
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:545,17'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:546,19'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:547,20'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:548,20'
          Dst:             libusb_cpu_to_le16
    - functionName:    usbfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 885
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev
        - fd
      BBCount:         18
      ICount:          134
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_get_device_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:901,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:902,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:915,13'
              BranchSideFuncs:
                - dev_has_config0
        - Branch String:   'os/linux_usbfs.c:902,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:903,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:906,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:911,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:912,31'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:914,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:915,13'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:916,23'
              BranchSideFuncs:
                - dev_has_config0
            - BranchSide:      'os/linux_usbfs.c:924,30'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:916,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:919,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:921,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:886,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:900,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:902,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:906,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:906,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:916,7'
          Dst:             dev_has_config0
    - functionName:    dev_has_config0
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:178,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:179,13'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:184,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:180,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:181,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:182,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:174,35'
          Dst:             usbi_get_device_priv
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    seek_to_next_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - buffer
        - len
      BBCount:         15
      ICount:          136
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:693,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:694,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:719,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:694,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:695,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:699,45'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:700,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:701,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:703,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:703,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:704,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:708,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:708,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:709,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:714,13'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:695,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:704,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:709,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:719,2'
          Dst:             usbi_log
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    nanosleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_handle_events
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2754
      functionLinenumberEnd: 2821
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ctx
        - event_data
        - count
        - num_ready
      BBCount:         55
      ICount:          322
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - linux_device_disconnected
        - reap_for_handle
        - usbi_get_device_handle_priv
        - usbi_handle_disconnect
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
        - usbi_mutex_unlock
        - usbi_remove_event_source
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2760,24'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2760,27'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2760,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2760,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2761,28'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2818,4'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:2766,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2767,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2769,12'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2770,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2771,40'
              BranchSideFuncs:
                - usbi_get_device_handle_priv
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:2776,8'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_get_device_handle_priv
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
        - Branch String:   'os/linux_usbfs.c:2772,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2773,5'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - usbi_get_device_handle_priv
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:2774,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2776,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2776,17'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_mutex_unlock.547
                - usbi_log
                - usbi_get_device_handle_priv
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:2777,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2776,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2777,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_unlock.547
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2782,7'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_mutex_unlock.547
                - usbi_log
                - usbi_get_device_handle_priv
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
        - Branch String:   'os/linux_usbfs.c:2782,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2786,29'
              BranchSideFuncs:
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_get_device_handle_priv
                - reap_for_handle
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:2807,14'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_mutex_unlock.547
                - usbi_log
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2786,29'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2786,49'
              BranchSideFuncs:
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_get_device_handle_priv
                - reap_for_handle
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:2786,49'
              BranchSideFuncs:
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_get_device_handle_priv
                - reap_for_handle
                - linux_device_disconnected
        - Branch String:   'os/linux_usbfs.c:2792,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2793,31'
              BranchSideFuncs:
                - linux_device_disconnected
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_get_device_handle_priv
                - reap_for_handle
            - BranchSide:      'os/linux_usbfs.c:2795,4'
              BranchSideFuncs:
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - linux_device_disconnected
                - usbi_get_device_handle_priv
                - reap_for_handle
        - Branch String:   'os/linux_usbfs.c:2797,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2798,5'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2803,27'
              BranchSideFuncs:
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2800,5'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2799,26'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2801,4'
              BranchSideFuncs:
                - usbi_handle_disconnect
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2810,19'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2810,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2810,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2810,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2809,24'
              BranchSideFuncs:
                - reap_for_handle
                - usbi_mutex_unlock.547
                - usbi_log
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2812,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2812,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2812,17'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2813,4'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
        - Branch String:   'os/linux_usbfs.c:2812,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2813,4'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
            - BranchSide:      'os/linux_usbfs.c:2814,12'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - usbi_log
                - reap_for_handle
                - usbi_remove_event_source
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_handle_disconnect
                - reap_for_handle
                - linux_device_disconnected
                - usbi_get_device_handle_priv
      Callsites:
        - Src:             'os/linux_usbfs.c:2759,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2771,12'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2777,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2786,4'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:2791,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:2793,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:2795,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:2799,10'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2803,4'
          Dst:             usbi_handle_disconnect
        - Src:             'os/linux_usbfs.c:2809,8'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2820,2'
          Dst:             usbi_mutex_unlock
    - functionName:    linux_device_disconnected
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1208
      functionLinenumberEnd: 1224
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - busnum
        - devaddr
      BBCount:         10
      ICount:          81
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_unref_device
        - usbi_disconnect_device
        - usbi_get_device_by_session_id
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    3
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1214,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1215,39'
              BranchSideFuncs:
                - usbi_get_device_by_session_id
                - usbi_log
                - usbi_mutex_static_unlock
                - usbi_disconnect_device
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1223,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock
        - Branch String:   'os/linux_usbfs.c:1216,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1217,27'
              BranchSideFuncs:
                - usbi_disconnect_device
                - libusb_unref_device
                - usbi_mutex_static_unlock
                - usbi_get_device_by_session_id
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1220,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock
                - usbi_get_device_by_session_id
                - usbi_disconnect_device
                - libusb_unref_device
      Callsites:
        - Src:             'os/linux_usbfs.c:1213,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1215,9'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1217,4'
          Dst:             usbi_disconnect_device
        - Src:             'os/linux_usbfs.c:1218,4'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1220,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1223,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    op_clear_transfer_priv
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2369
      functionLinenumberEnd: 2393
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         20
      ICount:          114
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2374,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2379,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'os/linux_usbfs.c:2379,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'os/linux_usbfs.c:2379,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'os/linux_usbfs.c:2379,7'
              BranchSideFuncs:
                - free
            - BranchSide:      'os/linux_usbfs.c:2385,7'
              BranchSideFuncs:
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2391,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2379,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2380,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'os/linux_usbfs.c:2383,3'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2385,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2386,18'
              BranchSideFuncs:
                - free_iso_urbs
            - BranchSide:      'os/linux_usbfs.c:2389,3'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2391,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2391,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2391,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:2372,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2386,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2391,3'
          Dst:             usbi_log
    - functionName:    op_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2342
      functionLinenumberEnd: 2366
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         16
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - discard_urbs
        - usbi_get_transfer_priv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2348,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2349,3'
              BranchSideFuncs:
                - discard_urbs
            - BranchSide:      'os/linux_usbfs.c:2351,19'
              BranchSideFuncs:
                - discard_urbs
        - Branch String:   'os/linux_usbfs.c:2352,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2353,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2355,10'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2355,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2358,7'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2358,7'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2362,3'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:2358,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2358,29'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:2359,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:2343,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2351,6'
          Dst:             discard_urbs
    - functionName:    op_submit_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2321
      functionLinenumberEnd: 2339
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - itransfer
      BBCount:         14
      ICount:          89
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - submit_bulk_transfer
        - submit_control_transfer
        - submit_iso_transfer
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2325,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2327,34'
              BranchSideFuncs:
                - submit_control_transfer
            - BranchSide:      'os/linux_usbfs.c:2330,31'
              BranchSideFuncs:
                - submit_bulk_transfer
            - BranchSide:      'os/linux_usbfs.c:2330,31'
              BranchSideFuncs:
                - submit_bulk_transfer
            - BranchSide:      'os/linux_usbfs.c:2332,31'
              BranchSideFuncs:
                - submit_bulk_transfer
            - BranchSide:      'os/linux_usbfs.c:2334,30'
              BranchSideFuncs:
                - submit_iso_transfer
            - BranchSide:      'os/linux_usbfs.c:2336,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:2336,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:2336,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:2336,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:2327,10'
          Dst:             submit_control_transfer
        - Src:             'os/linux_usbfs.c:2330,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2332,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2334,10'
          Dst:             submit_iso_transfer
        - Src:             'os/linux_usbfs.c:2336,3'
          Dst:             usbi_log
    - functionName:    op_destroy_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1903
      functionLinenumberEnd: 1909
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1904,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1814
      functionLinenumberEnd: 1842
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         23
      ICount:          129
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1825,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1826,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1837,13'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1826,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1827,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1828,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1828,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1829,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1830,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1830,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1831,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1832,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1835,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1835,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1835,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1815,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1824,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1826,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1828,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1830,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1832,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1835,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1835,3'
          Dst:             usbi_log
    - functionName:    op_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1757
      functionLinenumberEnd: 1776
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         14
      ICount:          99
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1765,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1766,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1775,23'
              BranchSideFuncs:
                - strcmp
        - Branch String:   'os/linux_usbfs.c:1766,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1767,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1768,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1771,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1771,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1771,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1758,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1764,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1766,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1768,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1771,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1771,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1775,9'
          Dst:             strcmp
    - functionName:    op_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1746
      functionLinenumberEnd: 1753
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - handle
        - buffer
        - len
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - munmap
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1747,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1748,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1751,3'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1748,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1748,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1748,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1747,6'
          Dst:             munmap
        - Src:             'os/linux_usbfs.c:1748,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1748,3'
          Dst:             usbi_log
    - functionName:    munmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_dev_mem_alloc
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1732
      functionLinenumberEnd: 1742
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - handle
        - len
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - mmap
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1737,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1738,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1741,9'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1738,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1738,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1738,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1733,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1736,11'
          Dst:             mmap
        - Src:             'os/linux_usbfs.c:1738,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1738,3'
          Dst:             usbi_log
    - functionName:    mmap
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_free_streams
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1726
      functionLinenumberEnd: 1728
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - endpoints
        - num_endpoints
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_streams_ioctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1727,9'
          Dst:             do_streams_ioctl
    - functionName:    op_alloc_streams
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1719
      functionLinenumberEnd: 1721
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - num_streams
        - endpoints
        - num_endpoints
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_streams_ioctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1720,9'
          Dst:             do_streams_ioctl
    - functionName:    op_reset_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1629
      functionLinenumberEnd: 1677
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         30
      ICount:          194
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - detach_kernel_driver_and_claim
        - ioctl
        - libusb_error_name
        - release_interface
        - usbi_get_device_handle_priv
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1640,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1641,7'
              BranchSideFuncs:
                - usbi_mutex_lock.546
                - ioctl
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
                - release_interface
            - BranchSide:      'os/linux_usbfs.c:1645,19'
              BranchSideFuncs:
                - usbi_mutex_lock.546
                - ioctl
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1641,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1642,22'
              BranchSideFuncs:
                - release_interface
                - usbi_mutex_lock.546
                - ioctl
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1643,2'
              BranchSideFuncs:
                - usbi_mutex_lock.546
                - ioctl
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
                - release_interface
        - Branch String:   'os/linux_usbfs.c:1647,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1648,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:1659,9'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1648,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1649,8'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:1653,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:1653,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1653,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_mutex_unlock.547
            - BranchSide:      'os/linux_usbfs.c:1653,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:1659,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1660,9'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1674,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
        - Branch String:   'os/linux_usbfs.c:1660,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1661,4'
              BranchSideFuncs:
                - detach_kernel_driver_and_claim
                - usbi_mutex_unlock.547
                - libusb_error_name
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1667,38'
              BranchSideFuncs:
                - detach_kernel_driver_and_claim
                - usbi_mutex_unlock.547
                - libusb_error_name
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1668,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1669,4'
              BranchSideFuncs:
                - libusb_error_name
                - usbi_log
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
            - BranchSide:      'os/linux_usbfs.c:1674,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
                - libusb_error_name
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1669,4'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1674,2'
              BranchSideFuncs:
                - libusb_error_name
                - usbi_log
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
            - BranchSide:      'os/linux_usbfs.c:1674,2'
              BranchSideFuncs:
                - libusb_error_name
                - usbi_log
                - usbi_mutex_unlock.547
                - detach_kernel_driver_and_claim
      Callsites:
        - Src:             'os/linux_usbfs.c:1630,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1642,4'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1645,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1646,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1648,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1653,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1653,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1667,7'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1669,4'
          Dst:             libusb_error_name
        - Src:             'os/linux_usbfs.c:1669,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1676,2'
          Dst:             usbi_mutex_unlock
    - functionName:    op_clear_halt
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1609
      functionLinenumberEnd: 1626
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - endpoint
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1615,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1616,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1625,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1616,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1617,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1618,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1621,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1621,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1621,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1610,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1613,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1616,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1618,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1621,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1621,3'
          Dst:             usbi_log
    - functionName:    op_set_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1585
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
        - altsetting
      BBCount:         14
      ICount:          100
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1594,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1595,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1604,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1595,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1596,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1597,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1600,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1600,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1600,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1586,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1593,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1595,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1597,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1600,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1600,3'
          Dst:             usbi_log
    - functionName:    op_release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1889
      functionLinenumberEnd: 1900
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - op_attach_kernel_driver
        - release_interface
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1893,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1894,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1896,6'
              BranchSideFuncs:
                - op_attach_kernel_driver
        - Branch String:   'os/linux_usbfs.c:1896,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1897,27'
              BranchSideFuncs:
                - op_attach_kernel_driver
            - BranchSide:      'os/linux_usbfs.c:1899,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:1892,6'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1897,3'
          Dst:             op_attach_kernel_driver
    - functionName:    op_claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1881
      functionLinenumberEnd: 1886
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - handle
        - interface
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - claim_interface
        - detach_kernel_driver_and_claim
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1882,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1883,41'
              BranchSideFuncs:
                - detach_kernel_driver_and_claim
            - BranchSide:      'os/linux_usbfs.c:1885,26'
              BranchSideFuncs:
                - claim_interface
      Callsites:
        - Src:             'os/linux_usbfs.c:1883,10'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1885,10'
          Dst:             claim_interface
    - functionName:    op_set_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1518
      functionLinenumberEnd: 1545
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - handle
        - config
      BBCount:         25
      ICount:          140
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1524,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1525,7'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1537,7'
              BranchSideFuncs:
                - dev_has_config0
        - Branch String:   'os/linux_usbfs.c:1525,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1526,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1527,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1527,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1528,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1529,12'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1532,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1532,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1532,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1537,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1538,7'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1544,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1538,19'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1538,39'
              BranchSideFuncs:
                - dev_has_config0
            - BranchSide:      'os/linux_usbfs.c:1541,25'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1538,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1539,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1541,25'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:1519,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1520,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1522,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1525,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1527,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1529,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1532,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1532,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1538,23'
          Dst:             dev_has_config0
    - functionName:    op_get_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1490
      functionLinenumberEnd: 1515
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - config
      BBCount:         18
      ICount:          119
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sysfs_get_active_config
        - usbfs_get_active_config
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1495,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1496,31'
              BranchSideFuncs:
                - sysfs_get_active_config
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1498,72'
              BranchSideFuncs:
                - usbi_get_device_handle_priv
                - usbfs_get_active_config
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1504,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1505,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1507,6'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:1507,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1508,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1512,21'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1508,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1512,21'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1512,21'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'os/linux_usbfs.c:1491,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1496,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:1498,44'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1500,7'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1508,3'
          Dst:             usbi_log
    - functionName:    op_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 821
      functionLinenumberEnd: 835
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - value
        - buffer
      BBCount:         10
      ICount:          88
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:826,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:827,13'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:834,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:828,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:829,14'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:832,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:822,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev
        - config_index
        - buffer
        - len
      BBCount:         9
      ICount:          85
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:874,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:875,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:877,12'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:878,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:878,6'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:878,6'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:871,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 839
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev
        - buffer
        - len
      BBCount:         16
      ICount:          118
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - op_get_config_descriptor_by_value
        - sysfs_get_active_config
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:845,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:846,31'
              BranchSideFuncs:
                - sysfs_get_active_config
                - op_get_config_descriptor_by_value
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:851,19'
              BranchSideFuncs:
                - op_get_config_descriptor_by_value
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:847,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:848,11'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:849,2'
              BranchSideFuncs:
                - op_get_config_descriptor_by_value
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:854,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:855,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:859,40'
              BranchSideFuncs:
                - op_get_config_descriptor_by_value
        - Branch String:   'os/linux_usbfs.c:860,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:861,10'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:863,8'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:863,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:863,6'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:863,6'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:840,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:846,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:855,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:859,6'
          Dst:             op_get_config_descriptor_by_value
    - functionName:    op_close
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1478
      functionLinenumberEnd: 1486
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         12
      ICount:          69
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - usbi_get_device_handle_priv
        - usbi_remove_event_source
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1482,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1483,28'
              BranchSideFuncs:
                - close
            - BranchSide:      'os/linux_usbfs.c:1484,7'
              BranchSideFuncs:
                - close
        - Branch String:   'os/linux_usbfs.c:1483,28'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1483,52'
              BranchSideFuncs:
                - usbi_remove_event_source
                - close
            - BranchSide:      'os/linux_usbfs.c:1483,52'
              BranchSideFuncs:
                - usbi_remove_event_source
                - close
        - Branch String:   'os/linux_usbfs.c:1484,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1484,6'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:1485,9'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'os/linux_usbfs.c:1479,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1483,3'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:1485,3'
          Dst:             close
    - functionName:    op_open
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1451
      functionLinenumberEnd: 1475
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         18
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - get_usbfs_fd
        - initialize_handle
        - linux_device_disconnected
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1455,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1456,7'
              BranchSideFuncs:
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_log
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:1470,24'
              BranchSideFuncs:
                - initialize_handle
                - close
        - Branch String:   'os/linux_usbfs.c:1456,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1459,4'
              BranchSideFuncs:
                - usbi_mutex_static_lock
                - usbi_mutex_static_unlock
                - usbi_log
                - linux_device_disconnected
            - BranchSide:      'os/linux_usbfs.c:1467,10'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:1460,8'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1461,5'
              BranchSideFuncs:
                - usbi_log
                - linux_device_disconnected
                - usbi_mutex_static_unlock
            - BranchSide:      'os/linux_usbfs.c:1465,4'
              BranchSideFuncs:
                - usbi_mutex_static_unlock
        - Branch String:   'os/linux_usbfs.c:1461,5'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1465,4'
              BranchSideFuncs:
                - usbi_log
                - linux_device_disconnected
                - usbi_mutex_static_unlock
            - BranchSide:      'os/linux_usbfs.c:1465,4'
              BranchSideFuncs:
                - usbi_log
                - linux_device_disconnected
                - usbi_mutex_static_unlock
        - Branch String:   'os/linux_usbfs.c:1471,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1472,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'os/linux_usbfs.c:1474,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:1454,7'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1459,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1461,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1462,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:1465,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:1470,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1472,3'
          Dst:             close
    - functionName:    op_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1402
      functionLinenumberEnd: 1448
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - handle
        - sys_dev
      BBCount:         19
      ICount:          157
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - initialize_device
        - initialize_handle
        - ioctl
        - libusb_unref_device
        - linux_get_device_address
        - usbi_alloc_device
        - usbi_get_device_handle_priv
        - usbi_log
        - usbi_sanitize_device
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1411,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1412,13'
              BranchSideFuncs:
                - ioctl
                - usbi_log
                - usbi_alloc_device
                - initialize_device
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1425,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_alloc_device
                - initialize_device
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1413,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1414,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:1419,10'
              BranchSideFuncs:
                - usbi_log
                - usbi_alloc_device
                - initialize_device
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1427,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1428,3'
              BranchSideFuncs:
                - initialize_device
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1430,24'
              BranchSideFuncs:
                - initialize_device
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1431,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1432,3'
              BranchSideFuncs:
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1433,27'
              BranchSideFuncs:
                - usbi_sanitize_device
                - initialize_handle
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1434,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1435,3'
              BranchSideFuncs:
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1438,2'
              BranchSideFuncs:
                - initialize_handle
                - libusb_unref_device
        - Branch String:   'os/linux_usbfs.c:1445,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1446,23'
              BranchSideFuncs:
                - libusb_unref_device
            - BranchSide:      'os/linux_usbfs.c:1447,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:1403,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1410,6'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:1412,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1414,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1414,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1425,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1426,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1430,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1433,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1441,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1446,3'
          Dst:             libusb_unref_device
    - functionName:    op_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 515
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_hotplug_poll
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:514,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:514,2'
              BranchSideFuncs:
                - linux_hotplug_poll
            - BranchSide:      'os/linux_usbfs.c:514,2'
              BranchSideFuncs:
                - linux_hotplug_poll
      Callsites:
        - Src:             'os/linux_usbfs.c:514,2'
          Dst:             linux_hotplug_poll
    - functionName:    op_get_device_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 493
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev
        - string_type
        - buffer
        - length
      BBCount:         24
      ICount:          179
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - open_sysfs_attr
        - read
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:466,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:467,48'
              BranchSideFuncs:
                - open_sysfs_attr
                - read
                - close
                - __errno_location
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:468,43'
              BranchSideFuncs:
                - open_sysfs_attr
                - read
                - close
                - __errno_location
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:469,49'
              BranchSideFuncs:
                - open_sysfs_attr
                - read
                - close
                - __errno_location
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:471,4'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:474,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:475,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:477,11'
              BranchSideFuncs:
                - read
                - close
                - __errno_location
                - close
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:478,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:479,7'
              BranchSideFuncs:
                - __errno_location
                - close
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:486,8'
              BranchSideFuncs:
                - close
        - Branch String:   'os/linux_usbfs.c:481,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:482,4'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:483,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:488,11'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:488,16'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:488,2'
              BranchSideFuncs: []
        - Branch String:   'os/linux_usbfs.c:488,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:489,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:491,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:462,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:473,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:477,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:479,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:480,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:483,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:486,2'
          Dst:             close
    - functionName:    op_set_option
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 455
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - option
        - ap
      BBCount:         8
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:446,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:447,60'
              BranchSideFuncs:
                - usbi_get_context_priv
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:454,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_usbfs.c:447,38'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:449,3'
          Dst:             usbi_log
    - functionName:    op_exit
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 428
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         11
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - linux_stop_event_monitor
        - usbi_get_context_priv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:431,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:432,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:435,2'
              BranchSideFuncs:
                - __assert_fail
                - linux_stop_event_monitor
        - Branch String:   'os/linux_usbfs.c:435,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:435,2'
              BranchSideFuncs:
                - linux_stop_event_monitor
            - BranchSide:      'os/linux_usbfs.c:436,7'
              BranchSideFuncs:
                - linux_stop_event_monitor
        - Branch String:   'os/linux_usbfs.c:436,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:436,6'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:438,3'
              BranchSideFuncs:
                - linux_stop_event_monitor
      Callsites:
        - Src:             'os/linux_usbfs.c:429,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:435,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:438,3'
          Dst:             linux_stop_event_monitor
    - functionName:    op_init
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 357
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         45
      ICount:          225
      EdgeCount:       60
      CyclomaticComplexity: 17
      functionsReached:
        - find_usbfs_path
        - get_kernel_version
        - kernel_version_ge
        - linux_scan_devices
        - linux_start_event_monitor
        - linux_stop_event_monitor
        - statfs
        - usbi_get_context_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:363,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:364,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:366,7'
              BranchSideFuncs:
                - kernel_version_ge
                - usbi_log
                - find_usbfs_path
                - usbi_log
                - usbi_log
                - kernel_version_ge
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:366,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:367,3'
              BranchSideFuncs:
                - find_usbfs_path
                - usbi_log
                - usbi_log
                - kernel_version_ge
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:373,15'
              BranchSideFuncs:
                - find_usbfs_path
                - usbi_log
                - usbi_log
                - kernel_version_ge
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:367,3'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:367,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:367,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:374,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:375,3'
              BranchSideFuncs:
                - usbi_log
                - kernel_version_ge
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:379,2'
              BranchSideFuncs:
                - usbi_log
                - kernel_version_ge
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:381,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:382,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:390,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:382,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:383,23'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:384,12'
              BranchSideFuncs:
                - kernel_version_ge
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:384,12'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:385,23'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:387,23'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - statfs
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:392,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:395,7'
              BranchSideFuncs:
                - statfs
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:405,6'
              BranchSideFuncs:
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
        - Branch String:   'os/linux_usbfs.c:396,14'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:396,27'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
                - usbi_log
            - BranchSide:      'os/linux_usbfs.c:400,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
        - Branch String:   'os/linux_usbfs.c:396,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:397,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
            - BranchSide:      'os/linux_usbfs.c:400,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
        - Branch String:   'os/linux_usbfs.c:405,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:406,3'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:409,4'
              BranchSideFuncs:
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
                - linux_start_event_monitor
        - Branch String:   'os/linux_usbfs.c:410,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:412,7'
              BranchSideFuncs:
                - linux_start_event_monitor
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
            - BranchSide:      'os/linux_usbfs.c:414,6'
              BranchSideFuncs:
                - usbi_log
                - linux_scan_devices
                - linux_stop_event_monitor
        - Branch String:   'os/linux_usbfs.c:414,6'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:415,26'
              BranchSideFuncs:
                - linux_scan_devices
                - linux_stop_event_monitor
            - BranchSide:      'os/linux_usbfs.c:421,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'os/linux_usbfs.c:416,7'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:417,14'
              BranchSideFuncs: []
            - BranchSide:      'os/linux_usbfs.c:418,12'
              BranchSideFuncs:
                - linux_stop_event_monitor
      Callsites:
        - Src:             'os/linux_usbfs.c:361,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:363,6'
          Dst:             get_kernel_version
        - Src:             'os/linux_usbfs.c:366,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:367,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:373,15'
          Dst:             find_usbfs_path
        - Src:             'os/linux_usbfs.c:375,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:379,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:382,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:384,12'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:390,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:395,7'
          Dst:             statfs
        - Src:             'os/linux_usbfs.c:397,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:400,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:412,7'
          Dst:             linux_start_event_monitor
        - Src:             'os/linux_usbfs.c:415,7'
          Dst:             linux_scan_devices
        - Src:             'os/linux_usbfs.c:419,4'
          Dst:             linux_stop_event_monitor
        - Src:             'os/linux_usbfs.c:421,3'
          Dst:             usbi_log
    - functionName:    statfs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_hotplug_enumerate
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1197
      functionLinenumberEnd: 1205
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - busnum
        - devaddr
        - sys_name
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - linux_enumerate_device
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1201,2'
          Branch Sides:
            - BranchSide:      'os/linux_usbfs.c:1202,26'
              BranchSideFuncs:
                - linux_enumerate_device
                - usbi_mutex_static_unlock
            - BranchSide:      'os/linux_usbfs.c:1204,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock
      Callsites:
        - Src:             'os/linux_usbfs.c:1200,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1202,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_usbfs.c:1204,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:36,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    udev_hotplug_event
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - udev_dev
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - linux_device_disconnected
        - linux_hotplug_enumerate
        - strncmp
        - udev_device_get_action
        - udev_device_info
        - udev_device_unref
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:238,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:239,4'
              BranchSideFuncs:
                - strncmp
                - udev_device_info
                - usbi_log
                - strncmp
                - strncmp
                - usbi_log
                - udev_device_unref
                - linux_device_disconnected
                - linux_hotplug_enumerate
            - BranchSide:      'os/linux_udev.c:242,23'
              BranchSideFuncs:
                - strncmp
                - udev_device_info
                - usbi_log
                - strncmp
                - strncmp
                - usbi_log
                - udev_device_unref
                - linux_device_disconnected
                - linux_hotplug_enumerate
        - Branch String:   'os/linux_udev.c:245,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:246,4'
              BranchSideFuncs:
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:249,3'
              BranchSideFuncs:
                - usbi_log
                - strncmp
                - strncmp
                - usbi_log
                - udev_device_unref
                - linux_device_disconnected
                - linux_hotplug_enumerate
        - Branch String:   'os/linux_udev.c:251,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:252,28'
              BranchSideFuncs:
                - linux_hotplug_enumerate
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:253,14'
              BranchSideFuncs:
                - strncmp
                - usbi_log
                - udev_device_unref
                - linux_device_disconnected
        - Branch String:   'os/linux_udev.c:253,14'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:254,30'
              BranchSideFuncs:
                - linux_device_disconnected
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:255,22'
              BranchSideFuncs:
                - strncmp
                - usbi_log
                - udev_device_unref
        - Branch String:   'os/linux_udev.c:255,14'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:257,3'
              BranchSideFuncs:
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:258,4'
              BranchSideFuncs:
                - usbi_log
                - udev_device_unref
      Callsites:
        - Src:             'os/linux_udev.c:237,17'
          Dst:             udev_device_get_action
        - Src:             'os/linux_udev.c:242,15'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:244,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:249,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:251,7'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:252,4'
          Dst:             linux_hotplug_enumerate
        - Src:             'os/linux_udev.c:254,4'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_udev.c:255,14'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:258,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:262,2'
          Dst:             udev_device_unref
    - functionName:    udev_device_get_action
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_info
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - detached
        - udev_dev
        - busnum
        - devaddr
        - sys_name
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - linux_get_device_address
        - udev_device_get_devnode
        - udev_device_get_sysname
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:215,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:216,3'
              BranchSideFuncs:
                - udev_device_get_sysname
                - linux_get_device_address
            - BranchSide:      'os/linux_udev.c:219,38'
              BranchSideFuncs:
                - udev_device_get_sysname
                - linux_get_device_address
        - Branch String:   'os/linux_udev.c:220,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:221,3'
              BranchSideFuncs:
                - linux_get_device_address
            - BranchSide:      'os/linux_udev.c:224,34'
              BranchSideFuncs:
                - linux_get_device_address
      Callsites:
        - Src:             'os/linux_udev.c:214,13'
          Dst:             udev_device_get_devnode
        - Src:             'os/linux_udev.c:219,14'
          Dst:             udev_device_get_sysname
        - Src:             'os/linux_udev.c:224,9'
          Dst:             linux_get_device_address
    - functionName:    udev_device_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_devnode
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_sysname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    2
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:32,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    linux_udev_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          44
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - udev_hotplug_event
        - udev_monitor_receive_device
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:312,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:310,22'
              BranchSideFuncs:
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - usbi_log
                - udev_hotplug_event
            - BranchSide:      'os/linux_udev.c:314,42'
              BranchSideFuncs:
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - usbi_log
                - udev_hotplug_event
        - Branch String:   'os/linux_udev.c:315,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:316,4'
              BranchSideFuncs:
                - usbi_log
                - udev_hotplug_event
                - usbi_mutex_static_unlock.630
                - udev_monitor_receive_device
            - BranchSide:      'os/linux_udev.c:319,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.630
                - udev_monitor_receive_device
                - usbi_log
                - udev_hotplug_event
        - Branch String:   'os/linux_udev.c:319,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:314,42'
              BranchSideFuncs:
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - usbi_log
                - udev_hotplug_event
            - BranchSide:      'os/linux_udev.c:320,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.630
      Callsites:
        - Src:             'os/linux_udev.c:312,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:314,14'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:316,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:317,4'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:320,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    udev_monitor_receive_device
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         15
      ICount:          117
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - linux_enumerate_device
        - udev_device_info
        - udev_device_new_from_syspath
        - udev_device_unref
        - udev_enumerate_add_match_property
        - udev_enumerate_add_match_subsystem
        - udev_enumerate_get_list_entry
        - udev_enumerate_new
        - udev_enumerate_scan_devices
        - udev_enumerate_unref
        - udev_list_entry_get_name
        - udev_list_entry_get_next
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:273,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:273,2'
              BranchSideFuncs:
                - udev_enumerate_new
                - udev_enumerate_add_match_subsystem
                - udev_enumerate_add_match_property
                - udev_enumerate_scan_devices
                - udev_enumerate_get_list_entry
                - udev_enumerate_unref
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - linux_enumerate_device
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_device_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:275,34'
              BranchSideFuncs:
                - udev_enumerate_new
                - udev_enumerate_add_match_subsystem
                - udev_enumerate_add_match_property
                - udev_enumerate_scan_devices
                - udev_enumerate_get_list_entry
                - udev_enumerate_unref
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - linux_enumerate_device
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_device_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:276,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:277,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_udev.c:281,37'
              BranchSideFuncs:
                - udev_enumerate_add_match_subsystem
                - udev_enumerate_add_match_property
                - udev_enumerate_scan_devices
                - udev_enumerate_get_list_entry
                - udev_enumerate_unref
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - linux_enumerate_device
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_device_unref
        - Branch String:   'os/linux_udev.c:287,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:288,47'
              BranchSideFuncs:
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - linux_enumerate_device
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_enumerate_unref
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:303,23'
              BranchSideFuncs:
                - udev_enumerate_unref
        - Branch String:   'os/linux_udev.c:294,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:295,22'
              BranchSideFuncs:
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_enumerate_unref
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - linux_enumerate_device
                - udev_device_unref
            - BranchSide:      'os/linux_udev.c:299,26'
              BranchSideFuncs:
                - linux_enumerate_device
                - udev_device_unref
                - udev_list_entry_get_next
                - udev_enumerate_unref
                - udev_list_entry_get_name
                - udev_device_new_from_syspath
                - udev_device_info
                - udev_device_unref
      Callsites:
        - Src:             'os/linux_udev.c:273,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:275,15'
          Dst:             udev_enumerate_new
        - Src:             'os/linux_udev.c:277,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:281,2'
          Dst:             udev_enumerate_add_match_subsystem
        - Src:             'os/linux_udev.c:282,2'
          Dst:             udev_enumerate_add_match_property
        - Src:             'os/linux_udev.c:283,2'
          Dst:             udev_enumerate_scan_devices
        - Src:             'os/linux_udev.c:284,12'
          Dst:             udev_enumerate_get_list_entry
        - Src:             'os/linux_udev.c:288,22'
          Dst:             udev_list_entry_get_name
        - Src:             'os/linux_udev.c:291,14'
          Dst:             udev_device_new_from_syspath
        - Src:             'os/linux_udev.c:293,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:295,4'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:299,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_udev.c:300,3'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:287,2'
          Dst:             udev_list_entry_get_next
        - Src:             'os/linux_udev.c:303,2'
          Dst:             udev_enumerate_unref
    - functionName:    udev_enumerate_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_subsystem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_property
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_scan_devices
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_get_list_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_new_from_syspath
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_next
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - pthread_join
        - udev_monitor_unref
        - udev_unref
        - usbi_destroy_event
        - usbi_log
        - usbi_signal_event
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:135,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:133,6'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:135,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:135,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:135,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:136,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:136,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:136,2'
              BranchSideFuncs:
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:137,2'
              BranchSideFuncs:
                - __assert_fail
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:137,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:137,2'
              BranchSideFuncs:
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:140,2'
              BranchSideFuncs:
                - usbi_signal_event
                - pthread_join
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:143,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:143,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:144,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
      Callsites:
        - Src:             'os/linux_udev.c:135,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:136,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:137,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:140,2'
          Dst:             usbi_signal_event
        - Src:             'os/linux_udev.c:142,6'
          Dst:             pthread_join
        - Src:             'os/linux_udev.c:144,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:146,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:150,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:155,2'
          Dst:             udev_unref
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_event_thread_main
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         22
      ICount:          121
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - poll
        - pthread_self
        - pthread_setname_np
        - udev_hotplug_event
        - udev_monitor_receive_device
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:176,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:177,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_udev.c:180,2'
              BranchSideFuncs:
                - usbi_log
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:184,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:186,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
            - BranchSide:      'os/linux_udev.c:191,7'
              BranchSideFuncs:
                - poll
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
        - Branch String:   'os/linux_udev.c:186,8'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:187,5'
              BranchSideFuncs:
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_udev.c:188,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:191,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:193,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'os/linux_udev.c:195,7'
              BranchSideFuncs:
                - poll
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - udev_hotplug_event
        - Branch String:   'os/linux_udev.c:195,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:182,2'
              BranchSideFuncs:
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - poll
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
                - udev_hotplug_event
            - BranchSide:      'os/linux_udev.c:196,4'
              BranchSideFuncs:
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_mutex_static_unlock.630
                - poll
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
                - udev_hotplug_event
        - Branch String:   'os/linux_udev.c:198,8'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:199,24'
              BranchSideFuncs:
                - udev_hotplug_event
                - usbi_mutex_static_unlock.630
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_udev.c:200,4'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.630
                - poll
                - usbi_mutex_static_lock.639
                - udev_monitor_receive_device
                - udev_hotplug_event
                - usbi_log
                - __errno_location
                - __errno_location
                - usbi_log
      Callsites:
        - Src:             'os/linux_udev.c:175,25'
          Dst:             pthread_self
        - Src:             'os/linux_udev.c:175,6'
          Dst:             pthread_setname_np
        - Src:             'os/linux_udev.c:177,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:180,2'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:183,7'
          Dst:             poll
        - Src:             'os/linux_udev.c:186,8'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:188,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:188,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:196,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:197,15'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:199,5'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:200,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_udev.c:204,2'
          Dst:             usbi_log
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         37
      ICount:          201
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - __errno_location
        - fcntl
        - linux_udev_event_thread_main
        - pthread_create
        - udev_monitor_enable_receiving
        - udev_monitor_filter_add_match_subsystem_devtype
        - udev_monitor_get_fd
        - udev_monitor_new_from_netlink
        - udev_monitor_unref
        - udev_new
        - udev_unref
        - usbi_create_event
        - usbi_destroy_event
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_udev.c:48,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:46,6'
              BranchSideFuncs:
                - __assert_fail
                - udev_new
                - usbi_log
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_udev.c:48,2'
              BranchSideFuncs:
                - __assert_fail
                - udev_new
                - usbi_log
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:48,2'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:48,2'
              BranchSideFuncs:
                - udev_new
                - usbi_log
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_udev.c:49,13'
              BranchSideFuncs:
                - udev_new
                - usbi_log
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:50,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:51,3'
              BranchSideFuncs:
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_udev.c:55,47'
              BranchSideFuncs:
                - udev_monitor_new_from_netlink
                - usbi_log
                - udev_unref
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:56,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:57,3'
              BranchSideFuncs:
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'os/linux_udev.c:61,54'
              BranchSideFuncs:
                - udev_monitor_filter_add_match_subsystem_devtype
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:62,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:63,3'
              BranchSideFuncs:
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:67,36'
              BranchSideFuncs:
                - udev_monitor_enable_receiving
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - usbi_log
        - Branch String:   'os/linux_udev.c:67,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:68,3'
              BranchSideFuncs:
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:72,40'
              BranchSideFuncs:
                - udev_monitor_get_fd
                - fcntl
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:77,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:78,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:81,8'
              BranchSideFuncs:
                - fcntl
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:81,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:82,13'
              BranchSideFuncs:
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
            - BranchSide:      'os/linux_udev.c:91,12'
              BranchSideFuncs:
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:82,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:83,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:86,2'
              BranchSideFuncs:
                - fcntl
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:92,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:93,3'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:96,8'
              BranchSideFuncs:
                - fcntl
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
                - __errno_location
                - usbi_log
        - Branch String:   'os/linux_udev.c:96,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:97,13'
              BranchSideFuncs:
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
            - BranchSide:      'os/linux_udev.c:103,6'
              BranchSideFuncs:
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:97,7'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:98,4'
              BranchSideFuncs:
                - __errno_location
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:101,2'
              BranchSideFuncs:
                - usbi_create_event
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
                - usbi_log
        - Branch String:   'os/linux_udev.c:104,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:105,3'
              BranchSideFuncs:
                - usbi_log
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:109,6'
              BranchSideFuncs:
                - pthread_create
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
        - Branch String:   'os/linux_udev.c:110,6'
          Branch Sides:
            - BranchSide:      'os/linux_udev.c:111,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_destroy_event
                - udev_monitor_unref
                - udev_unref
            - BranchSide:      'os/linux_udev.c:115,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'os/linux_udev.c:48,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:49,13'
          Dst:             udev_new
        - Src:             'os/linux_udev.c:51,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:55,17'
          Dst:             udev_monitor_new_from_netlink
        - Src:             'os/linux_udev.c:57,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:61,6'
          Dst:             udev_monitor_filter_add_match_subsystem_devtype
        - Src:             'os/linux_udev.c:63,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:67,6'
          Dst:             udev_monitor_enable_receiving
        - Src:             'os/linux_udev.c:68,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:72,20'
          Dst:             udev_monitor_get_fd
        - Src:             'os/linux_udev.c:76,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:78,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:78,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:82,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:83,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:83,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:91,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:93,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:93,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:97,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:98,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:98,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:103,6'
          Dst:             usbi_create_event
        - Src:             'os/linux_udev.c:105,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:109,6'
          Dst:             pthread_create
        - Src:             'os/linux_udev.c:109,6'
          Dst:             linux_udev_event_thread_main
        - Src:             'os/linux_udev.c:111,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:118,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:121,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:125,2'
          Dst:             udev_unref
    - functionName:    udev_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_new_from_netlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_filter_add_match_subsystem_devtype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_enable_receiving
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_get_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_str
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2831
      functionLinenumberEnd: 2870
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - level
        - str
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fputs
      functionUses:    3
      BranchProfiles:
        - Branch String:   'core.c:2865,6'
          Branch Sides:
            - BranchSide:      'core.c:2866,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2868,9'
              BranchSideFuncs:
                - fputs
      Callsites:
        - Src:             'core.c:2868,3'
          Dst:             fputs
    - functionName:    fputs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - key
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:91,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_get_version
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3046
      functionLinenumberEnd: 3047
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_error_name
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2991
      functionLinenumberEnd: 3038
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - error_code
      BBCount:         23
      ICount:          118
      EdgeCount:       44
      CyclomaticComplexity: 23
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:2992,2'
          Branch Sides:
            - BranchSide:      'core.c:2994,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2996,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2998,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3000,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3002,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3004,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3006,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3008,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3010,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3012,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3014,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3016,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3018,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3021,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3023,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3025,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3027,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3029,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3031,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3034,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:3036,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    log_v
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2874
      functionLinenumberEnd: 2966
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - level
        - function
        - format
        - args
      BBCount:         49
      ICount:          324
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - get_env_debug_level
        - log_str
        - snprintf
        - strcpy
        - usbi_get_monotonic_time
        - usbi_get_tid
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2887,6'
          Branch Sides:
            - BranchSide:      'core.c:2888,15'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2890,25'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
                - get_env_debug_level
        - Branch String:   'core.c:2891,15'
          Branch Sides:
            - BranchSide:      'core.c:2891,41'
              BranchSideFuncs:
                - get_env_debug_level
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2891,88'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
        - Branch String:   'core.c:2894,6'
          Branch Sides:
            - BranchSide:      'core.c:2895,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2897,18'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
        - Branch String:   'core.c:2900,2'
          Branch Sides:
            - BranchSide:      'core.c:2902,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2904,10'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2907,10'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2910,10'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2913,10'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
            - BranchSide:      'core.c:2916,10'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
        - Branch String:   'core.c:2920,6'
          Branch Sides:
            - BranchSide:      'core.c:2923,8'
              BranchSideFuncs:
                - log_str
                - log_str
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
            - BranchSide:      'core.c:2936,25'
              BranchSideFuncs:
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
        - Branch String:   'core.c:2923,7'
          Branch Sides:
            - BranchSide:      'core.c:2924,36'
              BranchSideFuncs:
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
            - BranchSide:      'core.c:2929,3'
              BranchSideFuncs:
                - usbi_get_monotonic_time.869
                - usbi_get_tid
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
        - Branch String:   'core.c:2930,3'
          Branch Sides:
            - BranchSide:      'core.c:2930,3'
              BranchSideFuncs:
                - usbi_get_tid
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
            - BranchSide:      'core.c:2932,25'
              BranchSideFuncs:
                - usbi_get_tid
                - snprintf
                - vsnprintf
                - strcpy
                - log_str
        - Branch String:   'core.c:2940,21'
          Branch Sides:
            - BranchSide:      'core.c:2940,24'
              BranchSideFuncs:
                - vsnprintf
                - strcpy
                - log_str
            - BranchSide:      'core.c:2943,14'
              BranchSideFuncs:
                - vsnprintf
                - strcpy
                - log_str
        - Branch String:   'core.c:2940,6'
          Branch Sides:
            - BranchSide:      'core.c:2943,14'
              BranchSideFuncs:
                - vsnprintf
                - strcpy
                - log_str
            - BranchSide:      'core.c:2946,23'
              BranchSideFuncs:
                - vsnprintf
                - strcpy
                - log_str
        - Branch String:   'core.c:2948,19'
          Branch Sides:
            - BranchSide:      'core.c:2948,22'
              BranchSideFuncs:
                - strcpy
                - log_str
            - BranchSide:      'core.c:2951,33'
              BranchSideFuncs:
                - strcpy
                - log_str
        - Branch String:   'core.c:2948,6'
          Branch Sides:
            - BranchSide:      'core.c:2951,33'
              BranchSideFuncs:
                - strcpy
                - log_str
            - BranchSide:      'core.c:2953,6'
              BranchSideFuncs:
                - strcpy
                - log_str
        - Branch String:   'core.c:2953,6'
          Branch Sides:
            - BranchSide:      'core.c:2955,16'
              BranchSideFuncs:
                - strcpy
                - log_str
            - BranchSide:      'core.c:2957,9'
              BranchSideFuncs:
                - strcpy
                - log_str
        - Branch String:   'core.c:2963,10'
          Branch Sides:
            - BranchSide:      'core.c:2963,13'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2963,10'
              BranchSideFuncs: []
        - Branch String:   'core.c:2963,6'
          Branch Sides:
            - BranchSide:      'core.c:2963,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2964,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2891,41'
          Dst:             get_env_debug_level
        - Src:             'core.c:2925,4'
          Dst:             log_str
        - Src:             'core.c:2926,4'
          Dst:             log_str
        - Src:             'core.c:2929,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2934,63'
          Dst:             usbi_get_tid
        - Src:             'core.c:2932,16'
          Dst:             snprintf
        - Src:             'core.c:2936,16'
          Dst:             snprintf
        - Src:             'core.c:2946,13'
          Dst:             vsnprintf
        - Src:             'core.c:2957,2'
          Dst:             strcpy
        - Src:             'core.c:2959,2'
          Dst:             log_str
    - functionName:    get_env_debug_level
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2505
      functionLinenumberEnd: 2513
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          60
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getenv
        - strtol
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:2506,24'
          Branch Sides:
            - BranchSide:      'core.c:2506,24'
              BranchSideFuncs:
                - getenv
                - strtol
            - BranchSide:      'core.c:2506,24'
              BranchSideFuncs:
                - getenv
                - strtol
        - Branch String:   'core.c:2508,6'
          Branch Sides:
            - BranchSide:      'core.c:2508,6'
              BranchSideFuncs:
                - strtol
            - BranchSide:      'core.c:2509,27'
              BranchSideFuncs:
                - strtol
        - Branch String:   'core.c:2510,15'
          Branch Sides:
            - BranchSide:      'core.c:2510,13'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2510,15'
              BranchSideFuncs: []
        - Branch String:   'core.c:2510,15'
          Branch Sides:
            - BranchSide:      'core.c:2510,13'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2510,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2507,20'
          Dst:             getenv
        - Src:             'core.c:2509,20'
          Dst:             strtol
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - tp
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    2
      BranchProfiles:
        - Branch String:   './libusbi.h:554,2'
          Branch Sides:
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:554,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './libusbi.h:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_exit
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2699
      functionLinenumberEnd: 2762
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         27
      ICount:          180
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - list_del
        - usbi_hotplug_exit
        - usbi_io_exit
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2707,6'
          Branch Sides:
            - BranchSide:      'core.c:2708,8'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
            - BranchSide:      'core.c:2723,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:2708,7'
          Branch Sides:
            - BranchSide:      'core.c:2709,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
                - usbi_log
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2714,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
                - usbi_log
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2714,7'
          Branch Sides:
            - BranchSide:      'core.c:2715,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2720,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:2734,6'
          Branch Sides:
            - BranchSide:      'core.c:2735,16'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
            - BranchSide:      'core.c:2737,7'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:2737,6'
          Branch Sides:
            - BranchSide:      'core.c:2738,24'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
            - BranchSide:      'core.c:2739,6'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:2739,6'
          Branch Sides:
            - BranchSide:      'core.c:2740,25'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
            - BranchSide:      'core.c:2742,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_io_exit
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:2749,2'
          Branch Sides:
            - BranchSide:      'core.c:2750,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:2755,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:2755,6'
          Branch Sides:
            - BranchSide:      'core.c:2756,3'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:2758,22'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
      Callsites:
        - Src:             'core.c:2703,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2709,4'
          Dst:             usbi_log
        - Src:             'core.c:2710,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2715,4'
          Dst:             usbi_log
        - Src:             'core.c:2716,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2720,3'
          Dst:             usbi_log
        - Src:             'core.c:2723,3'
          Dst:             usbi_log
        - Src:             'core.c:2727,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2728,2'
          Dst:             list_del
        - Src:             'core.c:2729,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2732,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2742,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2747,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2750,3'
          Dst:             usbi_log
        - Src:             'core.c:2756,3'
          Dst:             usbi_log
        - Src:             'core.c:2758,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2759,2'
          Dst:             usbi_mutex_destroy
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    7
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:32,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:32,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    usbi_log
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2970
      functionLinenumberEnd: 2976
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - level
        - function
        - format
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_v
      functionUses:    318
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2974,2'
          Dst:             log_v
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:36,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:36,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    7
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:59,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_init_context
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2546
      functionLinenumberEnd: 2691
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - options
        - num_options
      BBCount:         73
      ICount:          447
      EdgeCount:       93
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - get_env_debug_level
        - getenv
        - libusb_set_option
        - list_add
        - list_del
        - list_init
        - usbi_get_monotonic_time
        - usbi_hotplug_exit
        - usbi_hotplug_init
        - usbi_io_exit
        - usbi_io_init
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2553,11'
          Branch Sides:
            - BranchSide:      'core.c:2553,14'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - list_init.902
                - usbi_get_monotonic_time.869
                - usbi_mutex_static_unlock.883
                - calloc
                - usbi_mutex_static_unlock.883
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
            - BranchSide:      'core.c:2561,2'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - list_init.902
                - usbi_get_monotonic_time.869
                - usbi_mutex_static_unlock.883
                - calloc
                - usbi_mutex_static_unlock.883
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
        - Branch String:   'core.c:2553,6'
          Branch Sides:
            - BranchSide:      'core.c:2554,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2561,2'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - list_init.902
                - usbi_get_monotonic_time.869
                - usbi_mutex_static_unlock.883
                - calloc
                - usbi_mutex_static_unlock.883
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
        - Branch String:   'core.c:2562,6'
          Branch Sides:
            - BranchSide:      'core.c:2563,3'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - calloc
                - usbi_mutex_static_unlock.883
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
            - BranchSide:      'core.c:2566,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - calloc
                - usbi_mutex_static_unlock.883
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
        - Branch String:   'core.c:2569,6'
          Branch Sides:
            - BranchSide:      'core.c:2570,3'
              BranchSideFuncs:
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
            - BranchSide:      'core.c:2575,2'
              BranchSideFuncs:
                - getenv
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - get_env_debug_level
        - Branch String:   'core.c:2576,6'
          Branch Sides:
            - BranchSide:      'core.c:2577,17'
              BranchSideFuncs:
                - get_env_debug_level
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
            - BranchSide:      'core.c:2579,62'
              BranchSideFuncs:
                - usbi_mutex_init.906
                - usbi_mutex_init.906
                - list_init.902
                - list_init.902
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2590,2'
          Branch Sides:
            - BranchSide:      'core.c:2591,34'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
            - BranchSide:      'core.c:2604,11'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2591,41'
          Branch Sides:
            - BranchSide:      'core.c:2591,69'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
            - BranchSide:      'core.c:2592,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2591,7'
          Branch Sides:
            - BranchSide:      'core.c:2592,4'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
            - BranchSide:      'core.c:2594,31'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2594,7'
          Branch Sides:
            - BranchSide:      'core.c:2595,26'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
            - BranchSide:      'core.c:2597,26'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2599,7'
          Branch Sides:
            - BranchSide:      'core.c:2600,4'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2601,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2604,2'
          Branch Sides:
            - BranchSide:      'core.c:2605,10'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2622,7'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2605,3'
          Branch Sides:
            - BranchSide:      'core.c:2607,26'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2613,3'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2613,3'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2613,3'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2613,3'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
            - BranchSide:      'core.c:2615,26'
              BranchSideFuncs:
                - libusb_set_option
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
        - Branch String:   'core.c:2617,7'
          Branch Sides:
            - BranchSide:      'core.c:2618,4'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2619,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
                - libusb_set_option
                - libusb_set_option
        - Branch String:   'core.c:2622,6'
          Branch Sides:
            - BranchSide:      'core.c:2623,26'
              BranchSideFuncs:
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2631,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_io_init
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2635,6'
          Branch Sides:
            - BranchSide:      'core.c:2636,3'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2638,2'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - list_add.909
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2642,6'
          Branch Sides:
            - BranchSide:      'core.c:2643,20'
              BranchSideFuncs:
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2649,20'
              BranchSideFuncs:
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
        - Branch String:   'core.c:2644,7'
          Branch Sides:
            - BranchSide:      'core.c:2645,4'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - list_del.889
                - usbi_mutex_static_unlock.883
                - usbi_hotplug_exit
                - usbi_io_exit
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2646,2'
              BranchSideFuncs:
                - usbi_hotplug_init
                - usbi_mutex_static_unlock.883
                - usbi_log
        - Branch String:   'core.c:2651,6'
          Branch Sides:
            - BranchSide:      'core.c:2652,10'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2664,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2654,7'
          Branch Sides:
            - BranchSide:      'core.c:2656,8'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2662,2'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2656,8'
          Branch Sides:
            - BranchSide:      'core.c:2657,5'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2659,28'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_static_unlock.883
        - Branch String:   'core.c:2677,6'
          Branch Sides:
            - BranchSide:      'core.c:2679,24'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
            - BranchSide:      'core.c:2683,22'
              BranchSideFuncs:
                - usbi_mutex_destroy.894
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_static_unlock.883
      Callsites:
        - Src:             'core.c:2551,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2554,3'
          Dst:             usbi_log
        - Src:             'core.c:2556,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2561,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2563,3'
          Dst:             list_init
        - Src:             'core.c:2564,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2566,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2568,9'
          Dst:             calloc
        - Src:             'core.c:2570,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2576,6'
          Dst:             getenv
        - Src:             'core.c:2577,17'
          Dst:             get_env_debug_level
        - Src:             'core.c:2584,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2585,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2586,2'
          Dst:             list_init
        - Src:             'core.c:2587,2'
          Dst:             list_init
        - Src:             'core.c:2595,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2597,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2607,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2615,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2628,3'
          Dst:             usbi_log
        - Src:             'core.c:2631,2'
          Dst:             usbi_log
        - Src:             'core.c:2634,6'
          Dst:             usbi_io_init
        - Src:             'core.c:2638,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2639,2'
          Dst:             list_add
        - Src:             'core.c:2640,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2649,2'
          Dst:             usbi_hotplug_init
        - Src:             'core.c:2660,4'
          Dst:             usbi_log
        - Src:             'core.c:2664,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2669,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2670,2'
          Dst:             list_del
        - Src:             'core.c:2671,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2673,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2674,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2683,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2684,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2688,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    4
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:42,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_option
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2416
      functionLinenumberEnd: 2496
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - option
      BBCount:         61
      ICount:          313
      EdgeCount:       77
      CyclomaticComplexity: 18
      functionsReached:
        - libusb_set_log_cb_internal
        - usbi_get_context
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    5
      BranchProfiles:
        - Branch String:   'core.c:2426,6'
          Branch Sides:
            - BranchSide:      'core.c:2427,9'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2432,30'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2427,9'
          Branch Sides:
            - BranchSide:      'core.c:2427,9'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2427,9'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2428,35'
          Branch Sides:
            - BranchSide:      'core.c:2428,38'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2429,6'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2428,7'
          Branch Sides:
            - BranchSide:      'core.c:2429,6'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2431,2'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2432,6'
          Branch Sides:
            - BranchSide:      'core.c:2433,28'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2436,2'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2433,28'
          Branch Sides:
            - BranchSide:      'core.c:2436,2'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2436,2'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2437,7'
          Branch Sides:
            - BranchSide:      'core.c:2438,4'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2441,7'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2441,7'
          Branch Sides:
            - BranchSide:      'core.c:2442,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2446,15'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2446,7'
          Branch Sides:
            - BranchSide:      'core.c:2447,4'
              BranchSideFuncs:
                - usbi_mutex_static_lock.877
                - usbi_mutex_static_unlock.883
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2458,26'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2449,8'
          Branch Sides:
            - BranchSide:      'core.c:2450,48'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_get_context.911
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2451,39'
              BranchSideFuncs:
                - usbi_mutex_static_unlock.883
                - usbi_get_context.911
                - libusb_set_log_cb_internal
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2459,7'
          Branch Sides:
            - BranchSide:      'core.c:2460,4'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2462,11'
              BranchSideFuncs:
                - libusb_set_log_cb_internal
        - Branch String:   'core.c:2462,3'
          Branch Sides:
            - BranchSide:      'core.c:2465,9'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2476,21'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2476,21'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2485,31'
              BranchSideFuncs:
                - libusb_set_log_cb_internal
            - BranchSide:      'core.c:2488,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2490,6'
              BranchSideFuncs: []
        - Branch String:   'core.c:2465,8'
          Branch Sides:
            - BranchSide:      'core.c:2466,41'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2471,4'
              BranchSideFuncs: []
        - Branch String:   'core.c:2467,9'
          Branch Sides:
            - BranchSide:      'core.c:2468,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2469,4'
              BranchSideFuncs: []
        - Branch String:   'core.c:2468,6'
          Branch Sides:
            - BranchSide:      'core.c:2468,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2469,4'
              BranchSideFuncs: []
        - Branch String:   'core.c:2468,6'
          Branch Sides:
            - BranchSide:      'core.c:2469,4'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2469,4'
              BranchSideFuncs: []
        - Branch String:   'core.c:2476,8'
          Branch Sides:
            - BranchSide:      'core.c:2477,22'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2481,6'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2447,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2453,5'
          Dst:             libusb_set_log_cb_internal
        - Src:             'core.c:2455,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2458,9'
          Dst:             usbi_get_context
        - Src:             'core.c:2485,4'
          Dst:             libusb_set_log_cb_internal
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
        - head
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_set_log_cb_internal
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2341
      functionLinenumberEnd: 2360
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - cb
        - mode
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_context
      functionUses:    3
      BranchProfiles:
        - Branch String:   'core.c:2344,6'
          Branch Sides:
            - BranchSide:      'core.c:2345,17'
              BranchSideFuncs:
                - usbi_get_context.911
            - BranchSide:      'core.c:2348,6'
              BranchSideFuncs:
                - usbi_get_context.911
        - Branch String:   'core.c:2348,6'
          Branch Sides:
            - BranchSide:      'core.c:2348,6'
              BranchSideFuncs:
                - usbi_get_context.911
            - BranchSide:      'core.c:2349,26'
              BranchSideFuncs:
                - usbi_get_context.911
      Callsites:
        - Src:             'core.c:2349,9'
          Dst:             usbi_get_context
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         14
      ICount:          60
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    4
      BranchProfiles:
        - Branch String:   './libusbi.h:461,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:462,9'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:464,7'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:464,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:464,6'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:465,9'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:466,11'
          Branch Sides:
            - BranchSide:      './libusbi.h:466,14'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
        - Branch String:   './libusbi.h:466,7'
          Branch Sides:
            - BranchSide:      './libusbi.h:467,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    libusb_init
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2523
      functionLinenumberEnd: 2524
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_init_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2524,9'
          Dst:             libusb_init_context
    - functionName:    libusb_set_log_cb
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2387
      functionLinenumberEnd: 2389
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - cb
        - mode
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_set_log_cb_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2388,2'
          Dst:             libusb_set_log_cb_internal
    - functionName:    libusb_set_debug
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2335
      functionLinenumberEnd: 2337
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - level
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_set_option
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2336,2'
          Dst:             libusb_set_option
    - functionName:    libusb_get_max_raw_io_transfer_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2322
      functionLinenumberEnd: 2328
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2323,6'
          Branch Sides:
            - BranchSide:      'core.c:2324,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2326,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_endpoint_set_raw_io
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2298
      functionLinenumberEnd: 2303
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
        - enable
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2299,6'
          Branch Sides:
            - BranchSide:      'core.c:2300,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2302,22'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_endpoint_supports_raw_io
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2246
      functionLinenumberEnd: 2257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
      BBCount:         12
      ICount:          56
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2247,6'
          Branch Sides:
            - BranchSide:      'core.c:2249,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2253,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'core.c:2253,2'
          Branch Sides:
            - BranchSide:      'core.c:2253,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'core.c:2254,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'core.c:2254,2'
          Branch Sides:
            - BranchSide:      'core.c:2254,2'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2256,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2253,2'
          Dst:             __assert_fail
        - Src:             'core.c:2254,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_auto_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2217
      functionLinenumberEnd: 2223
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - enable
      BBCount:         4
      ICount:          31
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2218,6'
          Branch Sides:
            - BranchSide:      'core.c:2219,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2221,42'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2178
      functionLinenumberEnd: 2191
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2179,2'
          Branch Sides:
            - BranchSide:      'core.c:2179,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:2179,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:2181,27'
          Branch Sides:
            - BranchSide:      'core.c:2181,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2182,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:2181,6'
          Branch Sides:
            - BranchSide:      'core.c:2182,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2184,7'
              BranchSideFuncs: []
        - Branch String:   'core.c:2184,6'
          Branch Sides:
            - BranchSide:      'core.c:2185,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2187,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:2187,6'
          Branch Sides:
            - BranchSide:      'core.c:2188,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2190,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2179,2'
          Dst:             usbi_log
    - functionName:    libusb_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2142
      functionLinenumberEnd: 2155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2143,2'
          Branch Sides:
            - BranchSide:      'core.c:2143,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:2143,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:2145,27'
          Branch Sides:
            - BranchSide:      'core.c:2145,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2146,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:2145,6'
          Branch Sides:
            - BranchSide:      'core.c:2146,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2148,7'
              BranchSideFuncs: []
        - Branch String:   'core.c:2148,6'
          Branch Sides:
            - BranchSide:      'core.c:2149,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2151,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:2151,6'
          Branch Sides:
            - BranchSide:      'core.c:2152,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2154,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2143,2'
          Dst:             usbi_log
    - functionName:    libusb_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2104
      functionLinenumberEnd: 2117
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
      BBCount:         16
      ICount:          92
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2105,2'
          Branch Sides:
            - BranchSide:      'core.c:2105,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:2105,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:2107,27'
          Branch Sides:
            - BranchSide:      'core.c:2107,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2108,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:2107,6'
          Branch Sides:
            - BranchSide:      'core.c:2108,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2110,7'
              BranchSideFuncs: []
        - Branch String:   'core.c:2110,6'
          Branch Sides:
            - BranchSide:      'core.c:2111,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2113,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:2113,6'
          Branch Sides:
            - BranchSide:      'core.c:2114,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2116,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2105,2'
          Dst:             usbi_log
    - functionName:    libusb_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2078
      functionLinenumberEnd: 2083
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev_handle
        - buffer
        - length
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2079,6'
          Branch Sides:
            - BranchSide:      'core.c:2080,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2082,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_dev_mem_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2058
      functionLinenumberEnd: 2066
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev_handle
        - length
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2059,6'
          Branch Sides:
            - BranchSide:      'core.c:2060,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2062,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:2062,6'
          Branch Sides:
            - BranchSide:      'core.c:2063,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2065,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_free_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2015
      functionLinenumberEnd: 2029
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoints
        - num_endpoints
      BBCount:         16
      ICount:          94
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:2016,2'
          Branch Sides:
            - BranchSide:      'core.c:2016,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:2016,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:2018,17'
          Branch Sides:
            - BranchSide:      'core.c:2018,20'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2019,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:2018,6'
          Branch Sides:
            - BranchSide:      'core.c:2019,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2021,7'
              BranchSideFuncs: []
        - Branch String:   'core.c:2021,6'
          Branch Sides:
            - BranchSide:      'core.c:2022,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2024,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:2024,6'
          Branch Sides:
            - BranchSide:      'core.c:2025,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2028,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:2016,2'
          Dst:             usbi_log
    - functionName:    libusb_alloc_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1985
      functionLinenumberEnd: 1999
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - num_streams
        - endpoints
        - num_endpoints
      BBCount:         18
      ICount:          107
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1986,2'
          Branch Sides:
            - BranchSide:      'core.c:1986,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1986,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:1988,19'
          Branch Sides:
            - BranchSide:      'core.c:1988,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1989,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1988,33'
          Branch Sides:
            - BranchSide:      'core.c:1988,36'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1989,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1988,6'
          Branch Sides:
            - BranchSide:      'core.c:1989,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1991,7'
              BranchSideFuncs: []
        - Branch String:   'core.c:1991,6'
          Branch Sides:
            - BranchSide:      'core.c:1992,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1994,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:1994,6'
          Branch Sides:
            - BranchSide:      'core.c:1995,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1998,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1986,2'
          Dst:             usbi_log
    - functionName:    libusb_reset_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1951
      functionLinenumberEnd: 1960
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1952,2'
          Branch Sides:
            - BranchSide:      'core.c:1952,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1952,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:1953,6'
          Branch Sides:
            - BranchSide:      'core.c:1954,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1956,19'
              BranchSideFuncs: []
        - Branch String:   'core.c:1956,6'
          Branch Sides:
            - BranchSide:      'core.c:1957,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1959,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1952,2'
          Dst:             usbi_log
    - functionName:    libusb_clear_halt
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1929
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1924,2'
          Branch Sides:
            - BranchSide:      'core.c:1924,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1924,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:1925,6'
          Branch Sides:
            - BranchSide:      'core.c:1926,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1928,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1924,2'
          Dst:             usbi_log
    - functionName:    libusb_set_interface_alt_setting
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1882
      functionLinenumberEnd: 1903
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
        - alternate_setting
      BBCount:         21
      ICount:          132
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1883,2'
          Branch Sides:
            - BranchSide:      'core.c:1883,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1883,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1885,27'
          Branch Sides:
            - BranchSide:      'core.c:1885,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1886,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1885,6'
          Branch Sides:
            - BranchSide:      'core.c:1886,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1887,6'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1887,28'
          Branch Sides:
            - BranchSide:      'core.c:1887,31'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1888,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1887,6'
          Branch Sides:
            - BranchSide:      'core.c:1888,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1890,7'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1890,6'
          Branch Sides:
            - BranchSide:      'core.c:1891,3'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1894,19'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1895,6'
          Branch Sides:
            - BranchSide:      'core.c:1896,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1899,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
      Callsites:
        - Src:             'core.c:1883,2'
          Dst:             usbi_log
        - Src:             'core.c:1894,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1896,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1899,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    14
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:46,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    15
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:50,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    libusb_release_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1837
      functionLinenumberEnd: 1857
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
      BBCount:         18
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1840,2'
          Branch Sides:
            - BranchSide:      'core.c:1840,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1840,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1841,27'
          Branch Sides:
            - BranchSide:      'core.c:1841,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1842,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1841,6'
          Branch Sides:
            - BranchSide:      'core.c:1842,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1844,19'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1845,6'
          Branch Sides:
            - BranchSide:      'core.c:1846,5'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1850,19'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1851,6'
          Branch Sides:
            - BranchSide:      'core.c:1851,11'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1852,45'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
      Callsites:
        - Src:             'core.c:1840,2'
          Dst:             usbi_log
        - Src:             'core.c:1844,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1855,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_claim_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1793
      functionLinenumberEnd: 1814
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - interface_number
      BBCount:         20
      ICount:          128
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1796,2'
          Branch Sides:
            - BranchSide:      'core.c:1796,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1796,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1797,27'
          Branch Sides:
            - BranchSide:      'core.c:1797,30'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1798,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1797,6'
          Branch Sides:
            - BranchSide:      'core.c:1798,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1800,7'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1800,6'
          Branch Sides:
            - BranchSide:      'core.c:1801,3'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1803,19'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1804,6'
          Branch Sides:
            - BranchSide:      'core.c:1805,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1807,19'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
        - Branch String:   'core.c:1808,6'
          Branch Sides:
            - BranchSide:      'core.c:1808,11'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:1809,43'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
      Callsites:
        - Src:             'core.c:1796,2'
          Dst:             usbi_log
        - Src:             'core.c:1803,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1812,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_set_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1756
      functionLinenumberEnd: 1761
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - configuration
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1757,2'
          Branch Sides:
            - BranchSide:      'core.c:1757,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1757,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:1758,25'
          Branch Sides:
            - BranchSide:      'core.c:1758,28'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1759,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1758,6'
          Branch Sides:
            - BranchSide:      'core.c:1759,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1760,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1757,2'
          Dst:             usbi_log
    - functionName:    libusb_get_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1669
      functionLinenumberEnd: 1697
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
        - config
      BBCount:         21
      ICount:          125
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_control_transfer
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1672,31'
          Branch Sides:
            - BranchSide:      'core.c:1672,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - libusb_control_transfer
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1672,25'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
                - libusb_control_transfer
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:1675,6'
          Branch Sides:
            - BranchSide:      'core.c:1676,20'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - libusb_control_transfer
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1678,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - libusb_control_transfer
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:1678,6'
          Branch Sides:
            - BranchSide:      'core.c:1679,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_control_transfer
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1692,6'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:1682,7'
          Branch Sides:
            - BranchSide:      'core.c:1683,6'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1684,14'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:1684,14'
          Branch Sides:
            - BranchSide:      'core.c:1685,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1688,4'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:1692,6'
          Branch Sides:
            - BranchSide:      'core.c:1692,6'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1693,3'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'core.c:1674,2'
          Dst:             usbi_log
        - Src:             'core.c:1679,3'
          Dst:             usbi_log
        - Src:             'core.c:1680,7'
          Dst:             libusb_control_transfer
        - Src:             'core.c:1685,4'
          Dst:             usbi_log
        - Src:             'core.c:1688,4'
          Dst:             usbi_log
        - Src:             'core.c:1693,3'
          Dst:             usbi_log
    - functionName:    libusb_get_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1643
      functionLinenumberEnd: 1644
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1515
      functionLinenumberEnd: 1567
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_handle
      BBCount:         15
      ICount:          154
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - libusb_unref_device
        - list_del
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:1523,2'
          Branch Sides:
            - BranchSide:      'core.c:1525,4'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_log
            - BranchSide:      'core.c:1557,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:1528,7'
          Branch Sides:
            - BranchSide:      'core.c:1529,4'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
                - list_del.889
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1531,20'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_log
        - Branch String:   'core.c:1534,7'
          Branch Sides:
            - BranchSide:      'core.c:1535,4'
              BranchSideFuncs:
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1547,13'
              BranchSideFuncs:
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:1537,8'
          Branch Sides:
            - BranchSide:      'core.c:1538,5'
              BranchSideFuncs:
                - usbi_log
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
            - BranchSide:      'core.c:1540,5'
              BranchSideFuncs:
                - usbi_log
                - list_del.889
                - usbi_log
                - usbi_mutex_unlock.926
                - usbi_mutex_lock.925
                - list_del.889
                - usbi_mutex_unlock.926
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'core.c:1520,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1531,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1533,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1535,4'
          Dst:             usbi_log
        - Src:             'core.c:1538,5'
          Dst:             usbi_log
        - Src:             'core.c:1540,5'
          Dst:             usbi_log
        - Src:             'core.c:1547,3'
          Dst:             list_del
        - Src:             'core.c:1554,3'
          Dst:             usbi_log
        - Src:             'core.c:1557,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1559,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1560,2'
          Dst:             list_del
        - Src:             'core.c:1561,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1564,2'
          Dst:             libusb_unref_device
        - Src:             'core.c:1565,2'
          Dst:             usbi_mutex_destroy
    - functionName:    libusb_unref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1331
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         21
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - libusb_has_capability
        - libusb_unref_device
        - usbi_disconnect_device
        - usbi_log
      functionUses:    14
      BranchProfiles:
        - Branch String:   'core.c:1306,6'
          Branch Sides:
            - BranchSide:      'core.c:1307,3'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
            - BranchSide:      'core.c:1309,11'
              BranchSideFuncs:
                - __assert_fail
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
        - Branch String:   'core.c:1310,2'
          Branch Sides:
            - BranchSide:      'core.c:1310,2'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
            - BranchSide:      'core.c:1312,6'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
        - Branch String:   'core.c:1312,6'
          Branch Sides:
            - BranchSide:      'core.c:1312,6'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
            - BranchSide:      'core.c:1313,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
        - Branch String:   'core.c:1317,7'
          Branch Sides:
            - BranchSide:      'core.c:1318,17'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
            - BranchSide:      'core.c:1320,8'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_disconnect_device
                - free
                - free
        - Branch String:   'core.c:1320,7'
          Branch Sides:
            - BranchSide:      'core.c:1322,27'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'core.c:1325,12'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'core.c:1325,3'
          Branch Sides:
            - BranchSide:      'core.c:1326,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'core.c:1329,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'core.c:1310,2'
          Dst:             __assert_fail
        - Src:             'core.c:1313,3'
          Dst:             usbi_log
        - Src:             'core.c:1315,3'
          Dst:             libusb_unref_device
        - Src:             'core.c:1320,8'
          Dst:             libusb_has_capability
        - Src:             'core.c:1322,4'
          Dst:             usbi_disconnect_device
    - functionName:    libusb_has_capability
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2773
      functionLinenumberEnd: 2785
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - capability
      BBCount:         7
      ICount:          46
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    8
      BranchProfiles:
        - Branch String:   'core.c:2774,2'
          Branch Sides:
            - BranchSide:      'core.c:2776,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2778,25'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2780,24'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2782,24'
              BranchSideFuncs: []
            - BranchSide:      'core.c:2784,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    usbi_disconnect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 768
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_detach_device
        - usbi_hotplug_notification
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:766,2'
          Dst:             usbi_detach_device
        - Src:             'core.c:767,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_detach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 762
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_del
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:759,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:760,2'
          Dst:             list_del
        - Src:             'core.c:761,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    libusb_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1581
      functionLinenumberEnd: 1632
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
      BBCount:         26
      ICount:          165
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - do_close
        - libusb_lock_events
        - libusb_unlock_events
        - usbi_clear_event
        - usbi_handling_events
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1586,6'
          Branch Sides:
            - BranchSide:      'core.c:1587,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_handling_events.945
                - usbi_mutex_lock.925
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1588,8'
              BranchSideFuncs:
                - usbi_log
                - usbi_handling_events.945
                - usbi_mutex_lock.925
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1588,8'
          Branch Sides:
            - BranchSide:      'core.c:1588,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_handling_events.945
                - usbi_mutex_lock.925
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1588,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_handling_events.945
                - usbi_mutex_lock.925
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1601,6'
          Branch Sides:
            - BranchSide:      'core.c:1604,20'
              BranchSideFuncs:
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1617,11'
              BranchSideFuncs:
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1606,7'
          Branch Sides:
            - BranchSide:      'core.c:1607,4'
              BranchSideFuncs:
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1608,8'
              BranchSideFuncs:
                - usbi_signal_event
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1608,7'
          Branch Sides:
            - BranchSide:      'core.c:1609,23'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1610,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_lock_events
                - do_close
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1619,6'
          Branch Sides:
            - BranchSide:      'core.c:1619,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1622,20'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1623,7'
          Branch Sides:
            - BranchSide:      'core.c:1624,4'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1625,8'
              BranchSideFuncs:
                - usbi_clear_event
                - usbi_mutex_unlock.926
                - libusb_unlock_events
        - Branch String:   'core.c:1625,7'
          Branch Sides:
            - BranchSide:      'core.c:1626,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_unlock_events
            - BranchSide:      'core.c:1627,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_unlock_events
      Callsites:
        - Src:             'core.c:1589,2'
          Dst:             usbi_log
        - Src:             'core.c:1591,20'
          Dst:             usbi_handling_events
        - Src:             'core.c:1604,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1609,4'
          Dst:             usbi_signal_event
        - Src:             'core.c:1610,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1613,3'
          Dst:             libusb_lock_events
        - Src:             'core.c:1617,2'
          Dst:             do_close
        - Src:             'core.c:1622,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1626,4'
          Dst:             usbi_clear_event
        - Src:             'core.c:1627,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1630,3'
          Dst:             libusb_unlock_events
    - functionName:    libusb_open_device_with_vid_pid
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1480
      functionLinenumberEnd: 1511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ctx
        - vendor_id
        - product_id
      BBCount:         24
      ICount:          136
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_free_device_list
        - libusb_get_device_descriptor
        - libusb_get_device_list
        - libusb_open
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1488,6'
          Branch Sides:
            - BranchSide:      'core.c:1489,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1491,2'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
                - libusb_get_device_descriptor
        - Branch String:   'core.c:1491,2'
          Branch Sides:
            - BranchSide:      'core.c:1493,36'
              BranchSideFuncs:
                - libusb_get_device_descriptor
                - libusb_free_device_list
                - libusb_open
            - BranchSide:      'core.c:1502,6'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
        - Branch String:   'core.c:1494,7'
          Branch Sides:
            - BranchSide:      'core.c:1495,4'
              BranchSideFuncs:
                - libusb_free_device_list
            - BranchSide:      'core.c:1496,12'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
                - libusb_get_device_descriptor
        - Branch String:   'core.c:1496,34'
          Branch Sides:
            - BranchSide:      'core.c:1491,2'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
                - libusb_get_device_descriptor
            - BranchSide:      'core.c:1496,42'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
                - libusb_get_device_descriptor
        - Branch String:   'core.c:1496,7'
          Branch Sides:
            - BranchSide:      'core.c:1491,2'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
            - BranchSide:      'core.c:1497,12'
              BranchSideFuncs:
                - libusb_free_device_list
                - libusb_open
        - Branch String:   'core.c:1502,6'
          Branch Sides:
            - BranchSide:      'core.c:1502,6'
              BranchSideFuncs:
                - libusb_open
                - libusb_free_device_list
            - BranchSide:      'core.c:1503,19'
              BranchSideFuncs:
                - libusb_open
                - libusb_free_device_list
        - Branch String:   'core.c:1504,7'
          Branch Sides:
            - BranchSide:      'core.c:1505,15'
              BranchSideFuncs:
                - libusb_free_device_list
            - BranchSide:      'core.c:1506,2'
              BranchSideFuncs:
                - libusb_free_device_list
      Callsites:
        - Src:             'core.c:1488,6'
          Dst:             libusb_get_device_list
        - Src:             'core.c:1493,7'
          Dst:             libusb_get_device_descriptor
        - Src:             'core.c:1503,7'
          Dst:             libusb_open
        - Src:             'core.c:1509,2'
          Dst:             libusb_free_device_list
    - functionName:    libusb_get_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 837
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - list
      BBCount:         31
      ICount:          211
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - calloc
        - discovered_devs_alloc
        - discovered_devs_append
        - discovered_devs_free
        - libusb_has_capability
        - libusb_ref_device
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:845,6'
          Branch Sides:
            - BranchSide:      'core.c:846,3'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_has_capability
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - discovered_devs_append
            - BranchSide:      'core.c:848,25'
              BranchSideFuncs:
                - usbi_get_context.911
                - libusb_has_capability
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - discovered_devs_append
        - Branch String:   'core.c:850,6'
          Branch Sides:
            - BranchSide:      'core.c:854,20'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - discovered_devs_append
            - BranchSide:      'core.c:869,20'
              BranchSideFuncs:
                - calloc
                - discovered_devs_free
                - libusb_ref_device
        - Branch String:   'core.c:854,7'
          Branch Sides:
            - BranchSide:      'core.c:855,17'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - discovered_devs_append
            - BranchSide:      'core.c:857,20'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - discovered_devs_append
        - Branch String:   'core.c:858,3'
          Branch Sides:
            - BranchSide:      'core.c:859,38'
              BranchSideFuncs:
                - discovered_devs_append
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
            - BranchSide:      'core.c:866,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
        - Branch String:   'core.c:861,8'
          Branch Sides:
            - BranchSide:      'core.c:862,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - discovered_devs_append
            - BranchSide:      'core.c:865,3'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - calloc
                - discovered_devs_free
                - libusb_ref_device
                - discovered_devs_append
        - Branch String:   'core.c:872,6'
          Branch Sides:
            - BranchSide:      'core.c:873,9'
              BranchSideFuncs:
                - discovered_devs_free
            - BranchSide:      'core.c:878,17'
              BranchSideFuncs:
                - calloc
                - discovered_devs_free
                - libusb_ref_device
        - Branch String:   'core.c:880,6'
          Branch Sides:
            - BranchSide:      'core.c:881,7'
              BranchSideFuncs:
                - discovered_devs_free
                - libusb_ref_device
            - BranchSide:      'core.c:885,2'
              BranchSideFuncs:
                - discovered_devs_free
                - libusb_ref_device
        - Branch String:   'core.c:886,2'
          Branch Sides:
            - BranchSide:      'core.c:887,31'
              BranchSideFuncs:
                - libusb_ref_device
                - discovered_devs_free
            - BranchSide:      'core.c:890,10'
              BranchSideFuncs:
                - discovered_devs_free
        - Branch String:   'core.c:893,6'
          Branch Sides:
            - BranchSide:      'core.c:894,24'
              BranchSideFuncs:
                - discovered_devs_free
            - BranchSide:      'core.c:895,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:838,37'
          Dst:             discovered_devs_alloc
        - Src:             'core.c:843,2'
          Dst:             usbi_log
        - Src:             'core.c:848,8'
          Dst:             usbi_get_context
        - Src:             'core.c:850,6'
          Dst:             libusb_has_capability
        - Src:             'core.c:857,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:859,15'
          Dst:             discovered_devs_append
        - Src:             'core.c:866,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:879,8'
          Dst:             calloc
        - Src:             'core.c:888,12'
          Dst:             libusb_ref_device
        - Src:             'core.c:894,3'
          Dst:             discovered_devs_free
    - functionName:    libusb_open
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1425
      functionLinenumberEnd: 1459
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - dev_handle
      BBCount:         10
      ICount:          134
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - libusb_ref_device
        - libusb_unref_device
        - list_add
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:1433,6'
          Branch Sides:
            - BranchSide:      'core.c:1434,3'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init.906
                - libusb_ref_device
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1436,60'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init.906
                - libusb_ref_device
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:1437,6'
          Branch Sides:
            - BranchSide:      'core.c:1438,3'
              BranchSideFuncs:
                - usbi_mutex_init.906
                - libusb_ref_device
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1440,19'
              BranchSideFuncs:
                - usbi_mutex_init.906
                - libusb_ref_device
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:1445,6'
          Branch Sides:
            - BranchSide:      'core.c:1446,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_unref_device
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1453,19'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
      Callsites:
        - Src:             'core.c:1431,2'
          Dst:             usbi_log
        - Src:             'core.c:1436,16'
          Dst:             calloc
        - Src:             'core.c:1440,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1442,21'
          Dst:             libusb_ref_device
        - Src:             'core.c:1446,3'
          Dst:             usbi_log
        - Src:             'core.c:1447,3'
          Dst:             libusb_unref_device
        - Src:             'core.c:1448,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1453,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1454,2'
          Dst:             list_add
        - Src:             'core.c:1455,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - list
        - unref_devices
      BBCount:         12
      ICount:          61
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - libusb_unref_device
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:908,6'
          Branch Sides:
            - BranchSide:      'core.c:909,3'
              BranchSideFuncs:
                - free
                - libusb_unref_device
            - BranchSide:      'core.c:911,6'
              BranchSideFuncs:
                - free
                - libusb_unref_device
        - Branch String:   'core.c:911,6'
          Branch Sides:
            - BranchSide:      'core.c:912,7'
              BranchSideFuncs:
                - free
                - libusb_unref_device
            - BranchSide:      'core.c:918,7'
              BranchSideFuncs:
                - free
        - Branch String:   'core.c:915,3'
          Branch Sides:
            - BranchSide:      'core.c:916,24'
              BranchSideFuncs:
                - libusb_unref_device
                - free
            - BranchSide:      'core.c:917,2'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'core.c:916,4'
          Dst:             libusb_unref_device
    - functionName:    libusb_ref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1287
      functionLinenumberEnd: 1294
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         8
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'core.c:1291,2'
          Branch Sides:
            - BranchSide:      'core.c:1291,2'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1292,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1291,2'
          Dst:             __assert_fail
    - functionName:    discovered_devs_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 656
      functionLinenumberEnd: 664
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:658,3'
          Branch Sides:
            - BranchSide:      'core.c:657,26'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'core.c:658,3'
              BranchSideFuncs:
                - malloc
        - Branch String:   'core.c:660,6'
          Branch Sides:
            - BranchSide:      'core.c:660,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:661,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    discovered_devs_append
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 681
      functionLinenumberEnd: 711
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - discdevs
        - dev
      BBCount:         8
      ICount:          103
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - discovered_devs_free
        - libusb_ref_device
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:687,6'
          Branch Sides:
            - BranchSide:      'core.c:688,46'
              BranchSideFuncs:
                - libusb_ref_device
            - BranchSide:      'core.c:694,2'
              BranchSideFuncs:
                - usbi_log
                - realloc
                - discovered_devs_free
                - libusb_ref_device
        - Branch String:   'core.c:700,6'
          Branch Sides:
            - BranchSide:      'core.c:701,24'
              BranchSideFuncs:
                - libusb_ref_device
            - BranchSide:      'core.c:705,13'
              BranchSideFuncs:
                - libusb_ref_device
      Callsites:
        - Src:             'core.c:688,28'
          Dst:             libusb_ref_device
        - Src:             'core.c:694,2'
          Dst:             usbi_log
        - Src:             'core.c:698,17'
          Dst:             realloc
        - Src:             'core.c:701,3'
          Dst:             discovered_devs_free
        - Src:             'core.c:707,27'
          Dst:             libusb_ref_device
    - functionName:    discovered_devs_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - discdevs
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_unref_device
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:671,2'
          Branch Sides:
            - BranchSide:      'core.c:672,23'
              BranchSideFuncs:
                - libusb_unref_device
                - free
            - BranchSide:      'core.c:674,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'core.c:672,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1402
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - sys_dev
        - dev_handle
      BBCount:         10
      ICount:          105
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - list_add
        - usbi_get_context
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1379,6'
          Branch Sides:
            - BranchSide:      'core.c:1380,3'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init.906
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1382,60'
              BranchSideFuncs:
                - calloc
                - usbi_mutex_init.906
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:1383,6'
          Branch Sides:
            - BranchSide:      'core.c:1384,3'
              BranchSideFuncs:
                - usbi_mutex_init.906
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1386,19'
              BranchSideFuncs:
                - usbi_mutex_init.906
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
                - usbi_log
                - usbi_mutex_destroy.894
                - free
        - Branch String:   'core.c:1389,6'
          Branch Sides:
            - BranchSide:      'core.c:1390,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_mutex_destroy.894
                - free
            - BranchSide:      'core.c:1396,19'
              BranchSideFuncs:
                - usbi_mutex_lock.925
                - list_add.909
                - usbi_mutex_unlock.926
      Callsites:
        - Src:             'core.c:1375,2'
          Dst:             usbi_log
        - Src:             'core.c:1377,8'
          Dst:             usbi_get_context
        - Src:             'core.c:1382,16'
          Dst:             calloc
        - Src:             'core.c:1386,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1390,3'
          Dst:             usbi_log
        - Src:             'core.c:1391,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1396,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1397,2'
          Dst:             list_add
        - Src:             'core.c:1398,2'
          Dst:             usbi_mutex_unlock
    - functionName:    find_alt_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1104
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - config
        - iface_idx
        - altsetting_idx
        - endpoint
      BBCount:         12
      ICount:          110
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:1105,6'
          Branch Sides:
            - BranchSide:      'core.c:1106,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1109,42'
              BranchSideFuncs: []
        - Branch String:   'core.c:1111,6'
          Branch Sides:
            - BranchSide:      'core.c:1112,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1116,6'
              BranchSideFuncs: []
        - Branch String:   'core.c:1119,2'
          Branch Sides:
            - BranchSide:      'core.c:1121,5'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1125,2'
              BranchSideFuncs: []
        - Branch String:   'core.c:1122,7'
          Branch Sides:
            - BranchSide:      'core.c:1123,11'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1124,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_get_max_alt_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1254
      functionLinenumberEnd: 1278
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - dev
        - interface_number
        - alternate_setting
        - endpoint
      BBCount:         9
      ICount:          75
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_alt_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1260,6'
          Branch Sides:
            - BranchSide:      'core.c:1261,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1266,25'
              BranchSideFuncs:
                - find_alt_endpoint
                - libusb_free_config_descriptor
                - get_endpoint_max_packet_size
        - Branch String:   'core.c:1268,6'
          Branch Sides:
            - BranchSide:      'core.c:1269,5'
              BranchSideFuncs:
                - get_endpoint_max_packet_size
                - libusb_free_config_descriptor
            - BranchSide:      'core.c:1273,35'
              BranchSideFuncs:
                - get_endpoint_max_packet_size
                - libusb_free_config_descriptor
      Callsites:
        - Src:             'core.c:1259,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1261,3'
          Dst:             usbi_log
        - Src:             'core.c:1266,7'
          Dst:             find_alt_endpoint
        - Src:             'core.c:1273,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1276,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    get_endpoint_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1130
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - ep
      BBCount:         21
      ICount:          130
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_free_ss_endpoint_companion_descriptor
        - libusb_get_device_speed
        - libusb_get_ss_endpoint_companion_descriptor
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:1138,6'
          Branch Sides:
            - BranchSide:      'core.c:1139,51'
              BranchSideFuncs:
                - libusb_get_ss_endpoint_companion_descriptor
                - libusb_free_ss_endpoint_companion_descriptor
            - BranchSide:      'core.c:1147,6'
              BranchSideFuncs: []
        - Branch String:   'core.c:1140,7'
          Branch Sides:
            - BranchSide:      'core.c:1141,8'
              BranchSideFuncs:
                - libusb_free_ss_endpoint_companion_descriptor
            - BranchSide:      'core.c:1144,2'
              BranchSideFuncs: []
        - Branch String:   'core.c:1147,33'
          Branch Sides:
            - BranchSide:      'core.c:1147,36'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1148,9'
              BranchSideFuncs: []
        - Branch String:   'core.c:1147,6'
          Branch Sides:
            - BranchSide:      'core.c:1147,6'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1148,9'
              BranchSideFuncs: []
        - Branch String:   'core.c:1153,7'
          Branch Sides:
            - BranchSide:      'core.c:1153,10'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1154,16'
              BranchSideFuncs: []
        - Branch String:   'core.c:1152,7'
          Branch Sides:
            - BranchSide:      'core.c:1154,16'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1155,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:1137,10'
          Dst:             libusb_get_device_speed
        - Src:             'core.c:1139,7'
          Dst:             libusb_get_ss_endpoint_companion_descriptor
        - Src:             'core.c:1142,4'
          Dst:             libusb_free_ss_endpoint_companion_descriptor
    - functionName:    libusb_get_device_speed
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_max_iso_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1195
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dev
        - endpoint
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1201,6'
          Branch Sides:
            - BranchSide:      'core.c:1202,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1207,21'
              BranchSideFuncs:
                - find_endpoint
                - libusb_free_config_descriptor
                - get_endpoint_max_packet_size
        - Branch String:   'core.c:1208,6'
          Branch Sides:
            - BranchSide:      'core.c:1209,5'
              BranchSideFuncs:
                - get_endpoint_max_packet_size
                - libusb_free_config_descriptor
            - BranchSide:      'core.c:1213,35'
              BranchSideFuncs:
                - get_endpoint_max_packet_size
                - libusb_free_config_descriptor
      Callsites:
        - Src:             'core.c:1200,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1202,3'
          Dst:             usbi_log
        - Src:             'core.c:1207,7'
          Dst:             find_endpoint
        - Src:             'core.c:1213,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1216,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    find_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1056
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - config
        - endpoint
      BBCount:         16
      ICount:          118
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:1037,2'
          Branch Sides:
            - BranchSide:      'core.c:1038,43'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1055,2'
              BranchSideFuncs: []
        - Branch String:   'core.c:1041,3'
          Branch Sides:
            - BranchSide:      'core.c:1044,8'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1054,2'
              BranchSideFuncs: []
        - Branch String:   'core.c:1047,4'
          Branch Sides:
            - BranchSide:      'core.c:1049,7'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1053,3'
              BranchSideFuncs: []
        - Branch String:   'core.c:1050,9'
          Branch Sides:
            - BranchSide:      'core.c:1051,13'
              BranchSideFuncs: []
            - BranchSide:      'core.c:1052,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    libusb_get_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1099
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dev
        - endpoint
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'core.c:1082,6'
          Branch Sides:
            - BranchSide:      'core.c:1083,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:1088,21'
              BranchSideFuncs:
                - find_endpoint
                - libusb_free_config_descriptor
        - Branch String:   'core.c:1089,6'
          Branch Sides:
            - BranchSide:      'core.c:1090,5'
              BranchSideFuncs:
                - libusb_free_config_descriptor
            - BranchSide:      'core.c:1094,6'
              BranchSideFuncs:
                - libusb_free_config_descriptor
      Callsites:
        - Src:             'core.c:1081,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1083,3'
          Dst:             usbi_log
        - Src:             'core.c:1088,7'
          Dst:             find_endpoint
        - Src:             'core.c:1097,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    libusb_get_device_address
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1018
      functionLinenumberEnd: 1019
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_parent
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1008
      functionLinenumberEnd: 1009
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_port_path
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 989
      functionLinenumberEnd: 992
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ctx
        - dev
        - port_numbers
        - port_numbers_len
      BBCount:         5
      ICount:          34
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_get_port_numbers
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:992,9'
          Dst:             libusb_get_port_numbers
    - functionName:    libusb_get_port_numbers
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 963
      functionLinenumberEnd: 982
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev
        - port_numbers
        - port_numbers_len
      BBCount:         17
      ICount:          117
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:967,6'
          Branch Sides:
            - BranchSide:      'core.c:968,3'
              BranchSideFuncs: []
            - BranchSide:      'core.c:971,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:971,14'
          Branch Sides:
            - BranchSide:      'core.c:971,18'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:971,2'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:971,2'
          Branch Sides:
            - BranchSide:      'core.c:972,7'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:979,6'
              BranchSideFuncs: []
        - Branch String:   'core.c:972,7'
          Branch Sides:
            - BranchSide:      'core.c:973,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:976,21'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:979,6'
          Branch Sides:
            - BranchSide:      'core.c:980,11'
              BranchSideFuncs: []
            - BranchSide:      'core.c:981,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:973,4'
          Dst:             usbi_log
    - functionName:    libusb_get_port_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 947
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_bus_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 927
      functionLinenumberEnd: 928
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_device_by_session_id
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 799
      functionLinenumberEnd: 812
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - session_id
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_ref_device
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:804,2'
          Branch Sides:
            - BranchSide:      'core.c:804,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_ref_device
            - BranchSide:      'core.c:805,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_ref_device
        - Branch String:   'core.c:805,7'
          Branch Sides:
            - BranchSide:      'core.c:806,28'
              BranchSideFuncs:
                - libusb_ref_device
                - usbi_mutex_unlock.926
            - BranchSide:      'core.c:809,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.926
                - libusb_ref_device
      Callsites:
        - Src:             'core.c:803,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:806,10'
          Dst:             libusb_ref_device
        - Src:             'core.c:810,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_sanitize_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 774
      functionLinenumberEnd: 792
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         15
      ICount:          90
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:777,62'
          Branch Sides:
            - BranchSide:      'core.c:778,6'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:779,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'core.c:777,6'
          Branch Sides:
            - BranchSide:      'core.c:779,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:783,23'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'core.c:784,6'
          Branch Sides:
            - BranchSide:      'core.c:785,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'core.c:787,18'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'core.c:779,3'
          Dst:             usbi_log
        - Src:             'core.c:785,3'
          Dst:             usbi_log
        - Src:             'core.c:788,3'
          Dst:             usbi_log
    - functionName:    usbi_attach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_add
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:742,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:743,2'
          Dst:             list_add
        - Src:             'core.c:744,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_connect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 748
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_attach_device
        - usbi_hotplug_notification
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:749,2'
          Dst:             usbi_attach_device
        - Src:             'core.c:750,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_alloc_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 717
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - session_id
      BBCount:         9
      ICount:          71
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - libusb_has_capability
        - usbi_connect_device
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:721,6'
          Branch Sides:
            - BranchSide:      'core.c:722,3'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_connect_device
            - BranchSide:      'core.c:724,2'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_connect_device
        - Branch String:   'core.c:730,6'
          Branch Sides:
            - BranchSide:      'core.c:731,23'
              BranchSideFuncs: []
            - BranchSide:      'core.c:733,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'core.c:719,30'
          Dst:             calloc
        - Src:             'core.c:730,7'
          Dst:             libusb_has_capability
        - Src:             'core.c:731,3'
          Dst:             usbi_connect_device
    - functionName:    parse_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1424
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - iad_array
        - buffer
        - size
      BBCount:         34
      ICount:          315
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:1362,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1363,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1369,2'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1370,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:1371,20'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:1389,2'
              BranchSideFuncs:
                - calloc
        - Branch String:   'descriptor.c:1373,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1374,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1378,19'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1383,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1384,4'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:1385,17'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1390,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1391,24'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'descriptor.c:1423,2'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1392,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1393,4'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1395,20'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1403,66'
          Branch Sides:
            - BranchSide:      'descriptor.c:1403,70'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1415,24'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1403,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:1404,22'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1415,24'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1416,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:1417,5'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1419,21'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1420,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:1401,21'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1421,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:1363,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1374,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1379,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1391,9'
          Dst:             calloc
    - functionName:    clear_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - endpoint
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clear_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - usb_interface
      BBCount:         17
      ICount:          112
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - clear_endpoint
      functionUses:    2
      BranchProfiles:
        - Branch String:   'descriptor.c:144,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:144,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
            - BranchSide:      'descriptor.c:145,10'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
        - Branch String:   'descriptor.c:145,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:148,5'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
            - BranchSide:      'descriptor.c:160,2'
              BranchSideFuncs:
                - free
        - Branch String:   'descriptor.c:151,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:154,12'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
            - BranchSide:      'descriptor.c:158,17'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
        - Branch String:   'descriptor.c:154,5'
          Branch Sides:
            - BranchSide:      'descriptor.c:156,14'
              BranchSideFuncs:
                - clear_endpoint
                - free
                - free
                - free
            - BranchSide:      'descriptor.c:157,4'
              BranchSideFuncs:
                - free
                - free
                - free
                - clear_endpoint
      Callsites:
        - Src:             'descriptor.c:155,6'
          Dst:             clear_endpoint
    - functionName:    parse_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - endpoint
        - buffer
        - size
      BBCount:         39
      ICount:          370
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:60,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:61,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:66,50'
              BranchSideFuncs:
                - ReadLittleEndian16
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:67,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:68,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:71,13'
              BranchSideFuncs:
                - ReadLittleEndian16
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:71,13'
          Branch Sides:
            - BranchSide:      'descriptor.c:72,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:74,13'
              BranchSideFuncs:
                - ReadLittleEndian16
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:86,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:87,24'
              BranchSideFuncs:
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:91,12'
              BranchSideFuncs:
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:98,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:99,51'
              BranchSideFuncs:
                - usbi_log
                - malloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:125,18'
              BranchSideFuncs:
                - malloc
        - Branch String:   'descriptor.c:100,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:101,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:104,14'
              BranchSideFuncs:
                - usbi_log
                - malloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:111,53'
          Branch Sides:
            - BranchSide:      'descriptor.c:112,7'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'descriptor.c:115,4'
              BranchSideFuncs:
                - malloc
        - Branch String:   'descriptor.c:112,54'
          Branch Sides:
            - BranchSide:      'descriptor.c:113,7'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'descriptor.c:115,4'
              BranchSideFuncs:
                - malloc
        - Branch String:   'descriptor.c:113,51'
          Branch Sides:
            - BranchSide:      'descriptor.c:114,7'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'descriptor.c:115,4'
              BranchSideFuncs:
                - malloc
        - Branch String:   'descriptor.c:111,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:115,4'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'descriptor.c:117,3'
              BranchSideFuncs:
                - usbi_log
                - malloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:126,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:127,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:129,25'
              BranchSideFuncs:
                - malloc
        - Branch String:   'descriptor.c:130,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:131,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:133,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:61,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:68,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:72,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:75,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:84,29'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:101,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:105,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:117,3'
          Dst:             usbi_log
    - functionName:    ReadLittleEndian16
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 313
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - usb_interface
        - buffer
        - size
      BBCount:         68
      ICount:          584
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - clear_interface
        - parse_endpoint
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:176,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:179,32'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:309,9'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:181,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:182,6'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:185,31'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:197,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:198,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:201,14'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:201,14'
          Branch Sides:
            - BranchSide:      'descriptor.c:202,4'
              BranchSideFuncs:
                - usbi_log
                - clear_interface
            - BranchSide:      'descriptor.c:206,14'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:206,14'
          Branch Sides:
            - BranchSide:      'descriptor.c:207,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:210,14'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:221,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:222,23'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:225,13'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:232,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:233,52'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:261,19'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
        - Branch String:   'descriptor.c:234,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:235,5'
              BranchSideFuncs:
                - usbi_log
                - clear_interface
            - BranchSide:      'descriptor.c:240,15'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:248,55'
          Branch Sides:
            - BranchSide:      'descriptor.c:249,8'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
            - BranchSide:      'descriptor.c:252,5'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
        - Branch String:   'descriptor.c:249,54'
          Branch Sides:
            - BranchSide:      'descriptor.c:250,8'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
            - BranchSide:      'descriptor.c:252,5'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
        - Branch String:   'descriptor.c:250,52'
          Branch Sides:
            - BranchSide:      'descriptor.c:251,8'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
            - BranchSide:      'descriptor.c:252,5'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
        - Branch String:   'descriptor.c:248,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:252,5'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
            - BranchSide:      'descriptor.c:254,14'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:262,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:263,33'
              BranchSideFuncs:
                - malloc
                - clear_interface
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
            - BranchSide:      'descriptor.c:275,7'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
        - Branch String:   'descriptor.c:265,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:266,7'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
            - BranchSide:      'descriptor.c:270,11'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - calloc
                - parse_endpoint
        - Branch String:   'descriptor.c:275,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:279,22'
              BranchSideFuncs:
                - calloc
                - clear_interface
                - realloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - parse_endpoint
            - BranchSide:      'descriptor.c:302,55'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:280,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:281,7'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - parse_endpoint
            - BranchSide:      'descriptor.c:285,20'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - parse_endpoint
        - Branch String:   'descriptor.c:286,4'
          Branch Sides:
            - BranchSide:      'descriptor.c:287,24'
              BranchSideFuncs:
                - parse_endpoint
                - realloc
                - clear_interface
                - calloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:299,3'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:288,9'
          Branch Sides:
            - BranchSide:      'descriptor.c:289,6'
              BranchSideFuncs:
                - clear_interface
            - BranchSide:      'descriptor.c:290,9'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - parse_endpoint
        - Branch String:   'descriptor.c:290,9'
          Branch Sides:
            - BranchSide:      'descriptor.c:291,27'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - parse_endpoint
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:295,15'
              BranchSideFuncs:
                - realloc
                - clear_interface
                - calloc
                - malloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - parse_endpoint
        - Branch String:   'descriptor.c:303,39'
          Branch Sides:
            - BranchSide:      'descriptor.c:304,7'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:306,11'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:304,55'
          Branch Sides:
            - BranchSide:      'descriptor.c:305,7'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:306,11'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:303,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:176,2'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:306,11'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:179,16'
          Dst:             realloc
        - Src:             'descriptor.c:198,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:202,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:207,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:211,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:235,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:241,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:279,15'
          Dst:             calloc
        - Src:             'descriptor.c:287,9'
          Dst:             parse_endpoint
        - Src:             'descriptor.c:311,2'
          Dst:             clear_interface
    - functionName:    parse_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - config
        - buffer
        - size
      BBCount:         52
      ICount:          463
      EdgeCount:       70
      CyclomaticComplexity: 20
      functionsReached:
        - ReadLittleEndian16
        - calloc
        - clear_configuration
        - parse_interface
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:336,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:337,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:342,20'
              BranchSideFuncs:
                - ReadLittleEndian16
                - calloc
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:350,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:351,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:354,13'
              BranchSideFuncs:
                - calloc
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:354,13'
          Branch Sides:
            - BranchSide:      'descriptor.c:355,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:357,13'
              BranchSideFuncs:
                - calloc
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:357,13'
          Branch Sides:
            - BranchSide:      'descriptor.c:358,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:361,13'
              BranchSideFuncs:
                - calloc
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:367,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:368,3'
              BranchSideFuncs:
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:370,22'
              BranchSideFuncs:
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:375,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:380,11'
              BranchSideFuncs:
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:438,9'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:381,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:382,52'
              BranchSideFuncs:
                - usbi_log
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:411,19'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
        - Branch String:   'descriptor.c:383,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:384,5'
              BranchSideFuncs:
                - usbi_log
                - clear_configuration
            - BranchSide:      'descriptor.c:389,15'
              BranchSideFuncs:
                - usbi_log
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:398,54'
          Branch Sides:
            - BranchSide:      'descriptor.c:399,8'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
            - BranchSide:      'descriptor.c:402,5'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
        - Branch String:   'descriptor.c:399,55'
          Branch Sides:
            - BranchSide:      'descriptor.c:400,8'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
            - BranchSide:      'descriptor.c:402,5'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
        - Branch String:   'descriptor.c:400,52'
          Branch Sides:
            - BranchSide:      'descriptor.c:401,8'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
            - BranchSide:      'descriptor.c:402,5'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
        - Branch String:   'descriptor.c:398,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:402,5'
              BranchSideFuncs:
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
                - clear_configuration
                - realloc
            - BranchSide:      'descriptor.c:404,4'
              BranchSideFuncs:
                - usbi_log
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:412,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:413,37'
              BranchSideFuncs:
                - realloc
                - clear_configuration
                - parse_interface
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:426,23'
              BranchSideFuncs:
                - parse_interface
                - realloc
                - clear_configuration
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:416,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:417,7'
              BranchSideFuncs:
                - parse_interface
                - realloc
                - clear_configuration
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:421,11'
              BranchSideFuncs:
                - parse_interface
                - realloc
                - clear_configuration
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:427,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:428,4'
              BranchSideFuncs:
                - clear_configuration
            - BranchSide:      'descriptor.c:429,7'
              BranchSideFuncs:
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:429,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:430,29'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:434,13'
              BranchSideFuncs:
                - parse_interface
                - clear_configuration
                - realloc
                - usbi_log
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'descriptor.c:337,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:344,25'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:351,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:355,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:358,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:362,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:366,18'
          Dst:             calloc
        - Src:             'descriptor.c:384,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:390,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:404,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:413,21'
          Dst:             realloc
        - Src:             'descriptor.c:426,7'
          Dst:             parse_interface
        - Src:             'descriptor.c:441,2'
          Dst:             clear_configuration
    - functionName:    clear_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - config
      BBCount:         10
      ICount:          64
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - clear_interface
      functionUses:    2
      BranchProfiles:
        - Branch String:   'descriptor.c:319,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:319,6'
              BranchSideFuncs:
                - free
                - free
                - clear_interface
            - BranchSide:      'descriptor.c:320,10'
              BranchSideFuncs:
                - free
                - free
                - clear_interface
        - Branch String:   'descriptor.c:320,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:322,6'
              BranchSideFuncs:
                - clear_interface
                - free
                - free
            - BranchSide:      'descriptor.c:323,2'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'descriptor.c:321,4'
          Dst:             clear_interface
    - functionName:    usbi_utf8_copy
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1614
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - tgt
        - src
        - tgt_size
      BBCount:         32
      ICount:          191
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:1581,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1582,16'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1588,15'
              BranchSideFuncs:
                - strlen
                - strlen
        - Branch String:   'descriptor.c:1582,21'
          Branch Sides:
            - BranchSide:      'descriptor.c:1582,25'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1585,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1582,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1583,4'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1585,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1588,20'
          Branch Sides:
            - BranchSide:      'descriptor.c:1588,24'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1589,23'
              BranchSideFuncs:
                - strlen
        - Branch String:   'descriptor.c:1588,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1589,23'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1593,6'
              BranchSideFuncs:
                - strlen
        - Branch String:   'descriptor.c:1594,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:1595,7'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1602,6'
              BranchSideFuncs:
                - strlen
        - Branch String:   'descriptor.c:1595,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1596,11'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1598,4'
              BranchSideFuncs:
                - strlen
        - Branch String:   'descriptor.c:1602,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1604,13'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1611,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1605,14'
          Branch Sides:
            - BranchSide:      'descriptor.c:1605,27'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1605,3'
              BranchSideFuncs:
                - strlen
        - Branch String:   'descriptor.c:1605,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:1606,4'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'descriptor.c:1608,3'
              BranchSideFuncs:
                - strlen
      Callsites:
        - Src:             'descriptor.c:1589,16'
          Dst:             strlen
        - Src:             'descriptor.c:1609,16'
          Dst:             strlen
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_device_string
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1693
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev
        - string_type
        - data
        - length
      BBCount:         30
      ICount:          166
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - usbi_utf8_copy
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1657,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1658,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1660,7'
              BranchSideFuncs:
                - usbi_utf8_copy
                - malloc
                - free
        - Branch String:   'descriptor.c:1660,24'
          Branch Sides:
            - BranchSide:      'descriptor.c:1660,28'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1661,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1660,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1661,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1663,6'
              BranchSideFuncs:
                - usbi_utf8_copy
                - malloc
                - free
        - Branch String:   'descriptor.c:1663,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1664,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1666,14'
              BranchSideFuncs:
                - usbi_utf8_copy
                - malloc
                - free
        - Branch String:   'descriptor.c:1666,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1667,10'
              BranchSideFuncs:
                - usbi_utf8_copy
                - malloc
                - free
            - BranchSide:      'descriptor.c:1668,13'
              BranchSideFuncs:
                - usbi_utf8_copy
                - malloc
                - free
        - Branch String:   'descriptor.c:1672,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1673,20'
              BranchSideFuncs:
                - malloc
                - usbi_utf8_copy
                - free
            - BranchSide:      'descriptor.c:1687,6'
              BranchSideFuncs:
                - usbi_utf8_copy
        - Branch String:   'descriptor.c:1673,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1674,8'
              BranchSideFuncs:
                - malloc
                - usbi_utf8_copy
                - free
            - BranchSide:      'descriptor.c:1683,4'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1676,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:1677,10'
              BranchSideFuncs:
                - free
            - BranchSide:      'descriptor.c:1680,45'
              BranchSideFuncs:
                - usbi_utf8_copy
        - Branch String:   'descriptor.c:1688,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1689,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1692,24'
              BranchSideFuncs:
                - usbi_utf8_copy
      Callsites:
        - Src:             'descriptor.c:1692,9'
          Dst:             usbi_utf8_copy
    - functionName:    libusb_free_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1560
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - iad_array
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1554,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1555,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'descriptor.c:1557,6'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'descriptor.c:1557,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1558,15'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'descriptor.c:1559,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    libusb_get_active_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1517
      functionLinenumberEnd: 1540
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - iad_array
      BBCount:         13
      ICount:          96
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1523,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1524,3'
              BranchSideFuncs:
                - get_active_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_active_config_descriptor
                - free
                - raw_desc_to_iad_array
            - BranchSide:      'descriptor.c:1526,35'
              BranchSideFuncs:
                - get_active_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_active_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1527,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1528,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1530,47'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - malloc
                - get_active_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1532,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1533,3'
              BranchSideFuncs:
                - get_active_config_descriptor
                - free
                - raw_desc_to_iad_array
            - BranchSide:      'descriptor.c:1535,35'
              BranchSideFuncs:
                - get_active_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1536,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1537,29'
              BranchSideFuncs:
                - raw_desc_to_iad_array
                - free
            - BranchSide:      'descriptor.c:1538,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'descriptor.c:1526,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1530,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1535,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1537,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev
        - buffer
        - size
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    4
      BranchProfiles:
        - Branch String:   'descriptor.c:472,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:473,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:475,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:475,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:476,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:479,13'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'descriptor.c:476,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:480,3'
          Dst:             usbi_log
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    raw_desc_to_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1428
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - buf
        - size
        - iad_array
      BBCount:         8
      ICount:          68
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - parse_iad_array
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'descriptor.c:1433,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1434,3'
              BranchSideFuncs:
                - parse_iad_array
                - usbi_log
                - free
            - BranchSide:      'descriptor.c:1436,22'
              BranchSideFuncs:
                - parse_iad_array
                - usbi_log
                - free
        - Branch String:   'descriptor.c:1437,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1438,3'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'descriptor.c:1443,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:1430,5'
          Dst:             calloc
        - Src:             'descriptor.c:1436,6'
          Dst:             parse_iad_array
        - Src:             'descriptor.c:1438,3'
          Dst:             usbi_log
    - functionName:    libusb_get_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1496
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - config_index
        - iad_array
      BBCount:         15
      ICount:          122
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1474,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1475,3'
              BranchSideFuncs:
                - usbi_log
                - get_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
            - BranchSide:      'descriptor.c:1477,2'
              BranchSideFuncs:
                - usbi_log
                - get_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1478,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1479,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1481,28'
              BranchSideFuncs:
                - get_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1482,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1483,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1485,47'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1487,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1488,3'
              BranchSideFuncs:
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
            - BranchSide:      'descriptor.c:1490,28'
              BranchSideFuncs:
                - get_config_descriptor
                - free
                - raw_desc_to_iad_array
        - Branch String:   'descriptor.c:1491,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1492,29'
              BranchSideFuncs:
                - raw_desc_to_iad_array
                - free
            - BranchSide:      'descriptor.c:1494,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'descriptor.c:1477,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:1481,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1485,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1490,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1492,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dev
        - config_idx
        - buffer
        - size
      BBCount:         12
      ICount:          88
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    5
      BranchProfiles:
        - Branch String:   'descriptor.c:492,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:493,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:494,6'
              BranchSideFuncs:
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:494,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:495,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:498,13'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'descriptor.c:495,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:499,3'
          Dst:             usbi_log
    - functionName:    libusb_get_string_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2226
      functionLinenumberEnd: 2229
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - desc_index
        - langid
        - data
        - length
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_control_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2227,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_string_descriptor_ascii
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1295
      functionLinenumberEnd: 1350
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - desc_index
        - data
        - length
      BBCount:         56
      ICount:          336
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - libusb_cpu_to_le16
        - libusb_get_string_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1309,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1310,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1312,35'
              BranchSideFuncs:
                - libusb_get_string_descriptor
                - libusb_cpu_to_le16.1074
                - libusb_get_string_descriptor
                - libusb_cpu_to_le16.1074
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1313,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1314,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1315,11'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - libusb_get_string_descriptor
                - libusb_cpu_to_le16.1074
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1315,18'
          Branch Sides:
            - BranchSide:      'descriptor.c:1315,30'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1316,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'descriptor.c:1315,42'
          Branch Sides:
            - BranchSide:      'descriptor.c:1315,54'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1316,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'descriptor.c:1315,11'
          Branch Sides:
            - BranchSide:      'descriptor.c:1316,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1318,22'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - libusb_get_string_descriptor
                - libusb_cpu_to_le16.1074
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1316,3'
          Branch Sides:
            - BranchSide:      'descriptor.c:1316,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1316,3'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   'descriptor.c:1323,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1324,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1325,11'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - usbi_log
        - Branch String:   'descriptor.c:1325,34'
          Branch Sides:
            - BranchSide:      'descriptor.c:1325,46'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1326,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1325,58'
          Branch Sides:
            - BranchSide:      'descriptor.c:1325,70'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1326,3'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1325,11'
          Branch Sides:
            - BranchSide:      'descriptor.c:1326,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1327,21'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - usbi_log
        - Branch String:   'descriptor.c:1327,34'
          Branch Sides:
            - BranchSide:      'descriptor.c:1327,46'
              BranchSideFuncs:
                - usbi_log
                - libusb_cpu_to_le16.1074
            - BranchSide:      'descriptor.c:1328,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_cpu_to_le16.1074
        - Branch String:   'descriptor.c:1337,16'
          Branch Sides:
            - BranchSide:      'descriptor.c:1337,6'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
            - BranchSide:      'descriptor.c:1337,6'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
        - Branch String:   'descriptor.c:1340,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:1341,39'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
            - BranchSide:      'descriptor.c:1348,2'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:1342,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:1343,31'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
            - BranchSide:      'descriptor.c:1345,4'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
      Callsites:
        - Src:             'descriptor.c:1312,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1316,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1319,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1321,11'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1322,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1328,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1341,11'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_free_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1279
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - platform_descriptor
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1231
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_cap
        - platform_descriptor
      BBCount:         11
      ICount:          138
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1234,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1235,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1239,13'
              BranchSideFuncs:
                - malloc
                - usbi_log
        - Branch String:   'descriptor.c:1246,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1247,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1249,34'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:1235,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1240,3'
          Dst:             usbi_log
    - functionName:    libusb_free_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1209
      functionLinenumberEnd: 1211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - container_id
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1171
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_cap
        - container_id
      BBCount:         11
      ICount:          111
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1174,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1175,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1179,13'
              BranchSideFuncs:
                - malloc
                - usbi_log
        - Branch String:   'descriptor.c:1186,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1187,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:1189,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:1175,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1180,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1151
      functionLinenumberEnd: 1153
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ss_usb_device_cap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_free_ssplus_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1134
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ssplus_usb_device_cap
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_ssplus_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_cap
        - ssplus_usb_device_cap
      BBCount:         17
      ICount:          299
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - ReadLittleEndian16
        - ReadLittleEndian32
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:1064,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1065,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:1069,13'
              BranchSideFuncs:
                - ReadLittleEndian32
                - ReadLittleEndian16
                - ReadLittleEndian16
                - malloc
                - ReadLittleEndian32
                - free
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:1086,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1087,3'
              BranchSideFuncs:
                - ReadLittleEndian32
                - free
                - usbi_log
            - BranchSide:      'descriptor.c:1090,43'
              BranchSideFuncs:
                - ReadLittleEndian32
                - free
                - usbi_log
        - Branch String:   'descriptor.c:1099,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:1100,8'
              BranchSideFuncs:
                - free
                - usbi_log
            - BranchSide:      'descriptor.c:1106,29'
              BranchSideFuncs:
                - ReadLittleEndian32
        - Branch String:   'descriptor.c:1107,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:1108,38'
              BranchSideFuncs:
                - ReadLittleEndian32
            - BranchSide:      'descriptor.c:1117,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'descriptor.c:1065,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1070,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1080,34'
          Dst:             ReadLittleEndian32
        - Src:             'descriptor.c:1081,43'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1082,31'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1101,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1108,19'
          Dst:             ReadLittleEndian32
    - functionName:    ReadLittleEndian32
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - p
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_cap
        - ss_usb_device_cap
      BBCount:         11
      ICount:          132
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:980,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:981,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:985,13'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - ReadLittleEndian16
                - usbi_log
        - Branch String:   'descriptor.c:992,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:993,3'
              BranchSideFuncs:
                - ReadLittleEndian16
                - ReadLittleEndian16
            - BranchSide:      'descriptor.c:995,32'
              BranchSideFuncs:
                - ReadLittleEndian16
                - ReadLittleEndian16
      Callsites:
        - Src:             'descriptor.c:981,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:986,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:999,40'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1002,38'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_usb_2_0_extension_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 956
      functionLinenumberEnd: 958
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - usb_2_0_extension
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_usb_2_0_extension_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 944
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - dev_cap
        - usb_2_0_extension
      BBCount:         11
      ICount:          104
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ReadLittleEndian32
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:922,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:923,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:927,13'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian32
                - usbi_log
        - Branch String:   'descriptor.c:934,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:935,3'
              BranchSideFuncs:
                - ReadLittleEndian32
            - BranchSide:      'descriptor.c:937,32'
              BranchSideFuncs:
                - ReadLittleEndian32
      Callsites:
        - Src:             'descriptor.c:923,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:928,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:940,37'
          Dst:             ReadLittleEndian32
    - functionName:    libusb_free_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bos
      BBCount:         10
      ICount:          55
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'descriptor.c:894,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:895,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'descriptor.c:897,9'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'descriptor.c:897,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:898,8'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'descriptor.c:899,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    parse_bos
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 827
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - bos
        - buffer
        - size
      BBCount:         33
      ICount:          316
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - ReadLittleEndian16
        - calloc
        - libusb_free_bos_descriptor
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:760,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:761,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:766,49'
              BranchSideFuncs:
                - calloc
                - ReadLittleEndian16
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:767,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:768,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:771,13'
              BranchSideFuncs:
                - calloc
                - ReadLittleEndian16
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:771,13'
          Branch Sides:
            - BranchSide:      'descriptor.c:772,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:774,13'
              BranchSideFuncs:
                - calloc
                - ReadLittleEndian16
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:781,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:782,3'
              BranchSideFuncs:
                - ReadLittleEndian16
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:784,18'
              BranchSideFuncs:
                - ReadLittleEndian16
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:792,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:793,7'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:823,25'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:793,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:794,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:798,51'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
        - Branch String:   'descriptor.c:799,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:800,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:803,14'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
        - Branch String:   'descriptor.c:803,14'
          Branch Sides:
            - BranchSide:      'descriptor.c:804,4'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_bos_descriptor
            - BranchSide:      'descriptor.c:808,14'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:815,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:816,31'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:819,10'
              BranchSideFuncs:
                - malloc
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
                - libusb_free_bos_descriptor
                - usbi_log
                - usbi_log
      Callsites:
        - Src:             'descriptor.c:761,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:768,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:772,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:775,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:780,9'
          Dst:             calloc
        - Src:             'descriptor.c:786,23'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:794,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:800,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:804,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:806,4'
          Dst:             libusb_free_bos_descriptor
        - Src:             'descriptor.c:809,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:816,4'
          Dst:             libusb_free_bos_descriptor
    - functionName:    libusb_get_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2204
      functionLinenumberEnd: 2207
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - desc_type
        - desc_index
        - data
        - length
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_control_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2205,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 881
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev_handle
        - bos
      BBCount:         25
      ICount:          172
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - libusb_cpu_to_le16
        - libusb_get_descriptor
        - parse_bos
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:847,31'
          Branch Sides:
            - BranchSide:      'descriptor.c:847,25'
              BranchSideFuncs:
                - libusb_get_descriptor
                - libusb_cpu_to_le16.1074
                - usbi_log
                - calloc
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:847,25'
              BranchSideFuncs:
                - libusb_get_descriptor
                - libusb_cpu_to_le16.1074
                - usbi_log
                - calloc
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:852,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:853,7'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:857,6'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - usbi_log
                - calloc
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:853,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:854,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:855,10'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:857,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:858,3'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:863,41'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - usbi_log
                - calloc
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
        - Branch String:   'descriptor.c:867,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:868,3'
              BranchSideFuncs:
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
            - BranchSide:      'descriptor.c:870,28'
              BranchSideFuncs:
                - libusb_get_descriptor
                - usbi_log
                - free
                - parse_bos
                - usbi_log
        - Branch String:   'descriptor.c:871,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:872,7'
              BranchSideFuncs:
                - parse_bos
                - free
                - usbi_log
            - BranchSide:      'descriptor.c:876,3'
              BranchSideFuncs:
                - usbi_log
                - free
        - Branch String:   'descriptor.c:872,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:873,4'
              BranchSideFuncs:
                - usbi_log
                - parse_bos
                - free
            - BranchSide:      'descriptor.c:874,17'
              BranchSideFuncs:
                - parse_bos
                - free
        - Branch String:   'descriptor.c:874,17'
          Branch Sides:
            - BranchSide:      'descriptor.c:874,41'
              BranchSideFuncs:
                - parse_bos
                - free
            - BranchSide:      'descriptor.c:874,41'
              BranchSideFuncs:
                - parse_bos
                - free
      Callsites:
        - Src:             'descriptor.c:851,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:854,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:858,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:863,12'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:864,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:866,13'
          Dst:             calloc
        - Src:             'descriptor.c:870,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:873,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:874,7'
          Dst:             parse_bos
        - Src:             'descriptor.c:876,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_endpoint_companion_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 747
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ep_comp
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_ss_endpoint_companion_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - endpoint
        - ep_comp
      BBCount:         19
      ICount:          185
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:703,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:704,51'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:734,2'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:705,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:706,8'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - usbi_log
                - usbi_log
                - usbi_log
            - BranchSide:      'descriptor.c:714,14'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:706,8'
          Branch Sides:
            - BranchSide:      'descriptor.c:707,5'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:711,14'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - usbi_log
                - usbi_log
                - usbi_log
        - Branch String:   'descriptor.c:714,14'
          Branch Sides:
            - BranchSide:      'descriptor.c:715,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'descriptor.c:718,14'
              BranchSideFuncs:
                - malloc
                - ReadLittleEndian16
                - usbi_log
        - Branch String:   'descriptor.c:725,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:726,4'
              BranchSideFuncs:
                - ReadLittleEndian16
            - BranchSide:      'descriptor.c:727,25'
              BranchSideFuncs:
                - ReadLittleEndian16
      Callsites:
        - Src:             'descriptor.c:707,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:715,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:719,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:731,35'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 671
      functionLinenumberEnd: 677
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - config
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clear_configuration
      functionUses:    3
      BranchProfiles:
        - Branch String:   'descriptor.c:672,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:673,3'
              BranchSideFuncs:
                - clear_configuration
                - free
            - BranchSide:      'descriptor.c:675,22'
              BranchSideFuncs:
                - clear_configuration
                - free
      Callsites:
        - Src:             'descriptor.c:675,2'
          Dst:             clear_configuration
    - functionName:    libusb_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 631
      functionLinenumberEnd: 659
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - bConfigurationValue
        - config
      BBCount:         16
      ICount:          125
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_get_config_descriptor
        - raw_desc_to_config
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'descriptor.c:635,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:638,20'
              BranchSideFuncs:
                - raw_desc_to_config
            - BranchSide:      'descriptor.c:646,2'
              BranchSideFuncs:
                - usbi_log
                - get_config_descriptor
                - libusb_get_config_descriptor
        - Branch String:   'descriptor.c:640,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:641,11'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:643,29'
              BranchSideFuncs:
                - raw_desc_to_config
        - Branch String:   'descriptor.c:647,2'
          Branch Sides:
            - BranchSide:      'descriptor.c:650,29'
              BranchSideFuncs:
                - get_config_descriptor
                - libusb_get_config_descriptor
            - BranchSide:      'descriptor.c:658,2'
              BranchSideFuncs: []
        - Branch String:   'descriptor.c:651,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:652,11'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:654,20'
              BranchSideFuncs:
                - get_config_descriptor
                - libusb_get_config_descriptor
        - Branch String:   'descriptor.c:654,7'
          Branch Sides:
            - BranchSide:      'descriptor.c:655,40'
              BranchSideFuncs:
                - libusb_get_config_descriptor
            - BranchSide:      'descriptor.c:656,2'
              BranchSideFuncs:
                - get_config_descriptor
                - libusb_get_config_descriptor
      Callsites:
        - Src:             'descriptor.c:643,10'
          Dst:             raw_desc_to_config
        - Src:             'descriptor.c:646,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:650,7'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:655,11'
          Dst:             libusb_get_config_descriptor
    - functionName:    raw_desc_to_config
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - buf
        - size
        - config
      BBCount:         12
      ICount:          84
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - parse_configuration
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'descriptor.c:451,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:452,3'
              BranchSideFuncs:
                - parse_configuration
                - usbi_log
                - usbi_log
                - free
            - BranchSide:      'descriptor.c:454,26'
              BranchSideFuncs:
                - parse_configuration
                - usbi_log
                - usbi_log
                - free
        - Branch String:   'descriptor.c:455,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:456,3'
              BranchSideFuncs:
                - usbi_log
                - free
            - BranchSide:      'descriptor.c:459,13'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'descriptor.c:448,45'
          Dst:             calloc
        - Src:             'descriptor.c:454,6'
          Dst:             parse_configuration
        - Src:             'descriptor.c:456,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:460,3'
          Dst:             usbi_log
    - functionName:    libusb_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 610
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - config_index
        - config
      BBCount:         13
      ICount:          114
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'descriptor.c:592,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:593,3'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:595,28'
              BranchSideFuncs:
                - get_config_descriptor
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_config
        - Branch String:   'descriptor.c:596,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:597,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:599,47'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - malloc
                - get_config_descriptor
                - free
                - raw_desc_to_config
        - Branch String:   'descriptor.c:601,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:602,3'
              BranchSideFuncs:
                - get_config_descriptor
                - free
                - raw_desc_to_config
            - BranchSide:      'descriptor.c:604,28'
              BranchSideFuncs:
                - get_config_descriptor
                - free
                - raw_desc_to_config
        - Branch String:   'descriptor.c:605,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:606,26'
              BranchSideFuncs:
                - raw_desc_to_config
                - free
            - BranchSide:      'descriptor.c:608,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'descriptor.c:591,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:595,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:599,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:604,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:606,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - config
      BBCount:         11
      ICount:          88
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
      functionUses:    3
      BranchProfiles:
        - Branch String:   'descriptor.c:551,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:552,10'
              BranchSideFuncs: []
            - BranchSide:      'descriptor.c:554,47'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1074
                - malloc
                - get_active_config_descriptor
                - free
                - raw_desc_to_config
        - Branch String:   'descriptor.c:556,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:557,3'
              BranchSideFuncs:
                - get_active_config_descriptor
                - free
                - raw_desc_to_config
            - BranchSide:      'descriptor.c:559,35'
              BranchSideFuncs:
                - get_active_config_descriptor
                - free
                - raw_desc_to_config
        - Branch String:   'descriptor.c:560,6'
          Branch Sides:
            - BranchSide:      'descriptor.c:561,26'
              BranchSideFuncs:
                - raw_desc_to_config
                - free
            - BranchSide:      'descriptor.c:563,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'descriptor.c:550,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:554,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:559,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:561,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_device_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - desc
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:521,2'
          Dst:             usbi_log
    - functionName:    libusb_hotplug_get_user_data
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - callback_handle
      BBCount:         13
      ICount:          95
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - libusb_has_capability
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'hotplug.c:472,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:473,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_get_context.1152
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:475,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_get_context.1152
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:480,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:481,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:486,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:481,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:482,16'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:485,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
      Callsites:
        - Src:             'hotplug.c:472,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:475,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:477,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:479,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:486,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         14
      ICount:          60
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   './libusbi.h:461,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:462,9'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:464,7'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:464,6'
          Branch Sides:
            - BranchSide:      './libusbi.h:464,6'
              BranchSideFuncs: []
            - BranchSide:      './libusbi.h:465,9'
              BranchSideFuncs:
                - usbi_log
        - Branch String:   './libusbi.h:466,11'
          Branch Sides:
            - BranchSide:      './libusbi.h:466,14'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
        - Branch String:   './libusbi.h:466,7'
          Branch Sides:
            - BranchSide:      './libusbi.h:467,4'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      './libusbi.h:470,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    8
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:46,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:46,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    8
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:50,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:50,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    libusb_hotplug_deregister_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - callback_handle
      BBCount:         18
      ICount:          134
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - libusb_has_capability
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    1
      BranchProfiles:
        - Branch String:   'hotplug.c:434,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:435,3'
              BranchSideFuncs:
                - usbi_log
                - usbi_get_context.1152
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:437,2'
              BranchSideFuncs:
                - usbi_log
                - usbi_get_context.1152
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:442,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:443,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:450,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:443,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:445,4'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:449,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:452,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:452,6'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:455,20'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:458,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:459,23'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:460,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
      Callsites:
        - Src:             'hotplug.c:434,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:437,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:439,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:441,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:450,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:455,3'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:459,4'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:460,3'
          Dst:             usbi_mutex_unlock
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
        - head
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_hotplug_register_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - events
        - flags
        - vendor_id
        - product_id
        - dev_class
        - cb_fn
        - user_data
        - callback_handle
      BBCount:         58
      ICount:          377
      EdgeCount:       79
      CyclomaticComplexity: 23
      functionsReached:
        - calloc
        - libusb_free_device_list
        - libusb_get_device_list
        - libusb_has_capability
        - libusb_hotplug_deregister_callback
        - list_add
        - usbi_get_context
        - usbi_hotplug_match_cb
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:
        - Branch String:   'hotplug.c:351,14'
          Branch Sides:
            - BranchSide:      'hotplug.c:351,42'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:351,50'
          Branch Sides:
            - BranchSide:      'hotplug.c:352,30'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:352,37'
          Branch Sides:
            - BranchSide:      'hotplug.c:353,35'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:353,45'
          Branch Sides:
            - BranchSide:      'hotplug.c:353,59'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:354,35'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:353,71'
          Branch Sides:
            - BranchSide:      'hotplug.c:354,35'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:354,46'
          Branch Sides:
            - BranchSide:      'hotplug.c:354,60'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:355,35'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:354,73'
          Branch Sides:
            - BranchSide:      'hotplug.c:355,35'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:355,45'
          Branch Sides:
            - BranchSide:      'hotplug.c:355,57'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:356,7'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:355,69'
          Branch Sides:
            - BranchSide:      'hotplug.c:356,7'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:351,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:357,3'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:361,7'
              BranchSideFuncs:
                - libusb_has_capability
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:361,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:362,3'
              BranchSideFuncs:
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:364,25'
              BranchSideFuncs:
                - usbi_get_context.1152
                - calloc
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:367,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:368,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:370,31'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:371,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:372,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:375,34'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:375,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:376,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:379,34'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:379,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:380,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:383,19'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:392,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:393,3'
              BranchSideFuncs:
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:395,12'
              BranchSideFuncs:
                - list_add.1164
                - usbi_mutex_unlock.1154
                - usbi_log
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
        - Branch String:   'hotplug.c:402,41'
          Branch Sides:
            - BranchSide:      'hotplug.c:402,45'
              BranchSideFuncs:
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:421,6'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:402,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:406,32'
              BranchSideFuncs:
                - libusb_get_device_list
                - libusb_free_device_list
                - usbi_hotplug_match_cb
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:421,6'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:407,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:408,39'
              BranchSideFuncs:
                - libusb_hotplug_deregister_callback
            - BranchSide:      'hotplug.c:412,10'
              BranchSideFuncs:
                - libusb_free_device_list
                - usbi_hotplug_match_cb
        - Branch String:   'hotplug.c:412,3'
          Branch Sides:
            - BranchSide:      'hotplug.c:413,26'
              BranchSideFuncs:
                - usbi_hotplug_match_cb
                - libusb_free_device_list
            - BranchSide:      'hotplug.c:418,27'
              BranchSideFuncs:
                - libusb_free_device_list
        - Branch String:   'hotplug.c:421,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:422,22'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:424,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'hotplug.c:361,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:364,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:366,15'
          Dst:             calloc
        - Src:             'hotplug.c:386,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:395,2'
          Dst:             list_add
        - Src:             'hotplug.c:397,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:399,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:406,9'
          Dst:             libusb_get_device_list
        - Src:             'hotplug.c:408,4'
          Dst:             libusb_hotplug_deregister_callback
        - Src:             'hotplug.c:413,4'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:418,3'
          Dst:             libusb_free_device_list
    - functionName:    usbi_hotplug_match_cb
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - event
        - hotplug_cb
      BBCount:         21
      ICount:          151
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'hotplug.c:239,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:240,3'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:243,7'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:243,57'
          Branch Sides:
            - BranchSide:      'hotplug.c:244,6'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:248,7'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:243,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:245,3'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:248,7'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:248,58'
          Branch Sides:
            - BranchSide:      'hotplug.c:249,6'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:253,7'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:248,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:250,3'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:253,7'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:253,57'
          Branch Sides:
            - BranchSide:      'hotplug.c:254,6'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:258,9'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:253,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:255,3'
              BranchSideFuncs: []
            - BranchSide:      'hotplug.c:258,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    usbi_hotplug_process
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - hotplug_msgs
      BBCount:         25
      ICount:          217
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_unref_device
        - list_del
        - usbi_hotplug_match_cb
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'hotplug.c:302,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:303,9'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:330,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:305,3'
          Branch Sides:
            - BranchSide:      'hotplug.c:307,8'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:322,7'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
                - libusb_unref_device
        - Branch String:   'hotplug.c:307,8'
          Branch Sides:
            - BranchSide:      'hotplug.c:308,5'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:310,23'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:314,8'
          Branch Sides:
            - BranchSide:      'hotplug.c:315,15'
              BranchSideFuncs:
                - list_del.1168
                - free
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
            - BranchSide:      'hotplug.c:318,3'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:322,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:323,24'
              BranchSideFuncs:
                - libusb_unref_device
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:325,13'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_hotplug_match_cb
                - usbi_mutex_lock.1153
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:330,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:331,7'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:339,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:331,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:332,4'
              BranchSideFuncs:
                - usbi_log
                - list_del.1168
                - free
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:337,2'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_log
                - list_del.1168
                - free
      Callsites:
        - Src:             'hotplug.c:299,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:310,4'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:311,8'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:312,4'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:315,5'
          Dst:             list_del
        - Src:             'hotplug.c:323,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:325,3'
          Dst:             list_del
        - Src:             'hotplug.c:332,4'
          Dst:             usbi_log
        - Src:             'hotplug.c:334,4'
          Dst:             list_del
        - Src:             'hotplug.c:339,2'
          Dst:             usbi_mutex_unlock
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
        - head
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_hotplug_notification
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - dev
        - event
      BBCount:         11
      ICount:          92
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - list_add_tail
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    2
      BranchProfiles:
        - Branch String:   'hotplug.c:270,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:271,3'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_mutex_lock.1153
                - list_add_tail.1170
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:273,8'
              BranchSideFuncs:
                - calloc
                - usbi_log
                - usbi_mutex_lock.1153
                - list_add_tail.1170
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:274,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:275,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add_tail.1170
                - usbi_signal_event
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:279,15'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - list_add_tail.1170
                - usbi_signal_event
                - usbi_mutex_unlock.1154
        - Branch String:   'hotplug.c:288,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:289,22'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
            - BranchSide:      'hotplug.c:290,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
      Callsites:
        - Src:             'hotplug.c:273,8'
          Dst:             calloc
        - Src:             'hotplug.c:275,3'
          Dst:             usbi_log
        - Src:             'hotplug.c:284,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:287,2'
          Dst:             list_add_tail
        - Src:             'hotplug.c:289,3'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:290,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:59,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:59,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    usbi_recursively_remove_parents
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dev
        - next_dev
      BBCount:         19
      ICount:          100
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - list_del
        - usbi_recursively_remove_parents
      functionUses:    2
      BranchProfiles:
        - Branch String:   'hotplug.c:166,10'
          Branch Sides:
            - BranchSide:      'hotplug.c:166,13'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - __assert_fail
                - list_del.1168
            - BranchSide:      'hotplug.c:166,10'
              BranchSideFuncs: []
        - Branch String:   'hotplug.c:166,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:166,6'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - __assert_fail
                - list_del.1168
            - BranchSide:      'hotplug.c:167,7'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - __assert_fail
                - list_del.1168
        - Branch String:   'hotplug.c:167,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:175,4'
              BranchSideFuncs:
                - __assert_fail
                - usbi_recursively_remove_parents
                - list_del.1168
            - BranchSide:      'hotplug.c:181,35'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
        - Branch String:   'hotplug.c:175,4'
          Branch Sides:
            - BranchSide:      'hotplug.c:175,4'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - list_del.1168
            - BranchSide:      'hotplug.c:176,8'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - list_del.1168
        - Branch String:   'hotplug.c:176,35'
          Branch Sides:
            - BranchSide:      'hotplug.c:176,38'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - list_del.1168
            - BranchSide:      'hotplug.c:179,3'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
        - Branch String:   'hotplug.c:176,8'
          Branch Sides:
            - BranchSide:      'hotplug.c:177,15'
              BranchSideFuncs:
                - list_del.1168
                - usbi_recursively_remove_parents
            - BranchSide:      'hotplug.c:179,3'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
      Callsites:
        - Src:             'hotplug.c:175,4'
          Dst:             __assert_fail
        - Src:             'hotplug.c:177,5'
          Dst:             list_del
        - Src:             'hotplug.c:181,3'
          Dst:             usbi_recursively_remove_parents
    - functionName:    usbi_hotplug_exit
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         25
      ICount:          206
      EdgeCount:       32
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_has_capability
        - libusb_unref_device
        - list_del
        - usbi_mutex_destroy
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_recursively_remove_parents
      functionUses:    2
      BranchProfiles:
        - Branch String:   'hotplug.c:192,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:193,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:195,7'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:195,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:196,3'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
            - BranchSide:      'hotplug.c:199,2'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
                - list_del.1168
                - free
        - Branch String:   'hotplug.c:199,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:200,13'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
            - BranchSide:      'hotplug.c:205,2'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - list_del.1168
                - free
                - libusb_unref_device
        - Branch String:   'hotplug.c:205,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:206,9'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - libusb_unref_device
            - BranchSide:      'hotplug.c:217,19'
              BranchSideFuncs:
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
        - Branch String:   'hotplug.c:210,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:211,24'
              BranchSideFuncs:
                - libusb_unref_device
                - list_del.1168
                - free
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
            - BranchSide:      'hotplug.c:213,13'
              BranchSideFuncs:
                - list_del.1168
                - free
                - usbi_mutex_lock.1153
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - list_del.1168
                - libusb_unref_device
        - Branch String:   'hotplug.c:219,2'
          Branch Sides:
            - BranchSide:      'hotplug.c:223,7'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - list_del.1168
            - BranchSide:      'hotplug.c:231,21'
              BranchSideFuncs:
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
        - Branch String:   'hotplug.c:223,7'
          Branch Sides:
            - BranchSide:      'hotplug.c:224,14'
              BranchSideFuncs:
                - list_del.1168
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
            - BranchSide:      'hotplug.c:227,35'
              BranchSideFuncs:
                - usbi_recursively_remove_parents
                - libusb_unref_device
                - usbi_mutex_unlock.1154
                - usbi_mutex_destroy.1174
                - list_del.1168
      Callsites:
        - Src:             'hotplug.c:192,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:200,3'
          Dst:             list_del
        - Src:             'hotplug.c:211,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:213,3'
          Dst:             list_del
        - Src:             'hotplug.c:217,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:224,4'
          Dst:             list_del
        - Src:             'hotplug.c:227,3'
          Dst:             usbi_recursively_remove_parents
        - Src:             'hotplug.c:229,3'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:231,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:233,2'
          Dst:             usbi_mutex_destroy
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - entry
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   './os/threads_posix.h:42,2'
          Branch Sides:
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs: []
            - BranchSide:      './os/threads_posix.h:42,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             './os/threads_posix.h:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    usbi_hotplug_init
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_has_capability
        - list_init
        - usbi_mutex_init
      functionUses:    1
      BranchProfiles:
        - Branch String:   'hotplug.c:155,6'
          Branch Sides:
            - BranchSide:      'hotplug.c:156,3'
              BranchSideFuncs:
                - usbi_mutex_init.1182
                - list_init.1181
            - BranchSide:      'hotplug.c:158,19'
              BranchSideFuncs:
                - usbi_mutex_init.1182
                - list_init.1181
      Callsites:
        - Src:             'hotplug.c:155,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:158,2'
          Dst:             usbi_mutex_init
        - Src:             'hotplug.c:159,2'
          Dst:             list_init
    - functionName:    libusb_fill_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1986
      functionLinenumberEnd: 1995
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - transfer
        - dev_handle
        - endpoint
        - buffer
        - length
        - callback
        - user_data
        - timeout
      BBCount:         1
      ICount:          59
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - x
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - key
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:91,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_interrupt_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
        - data
        - length
        - transferred
        - timeout
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:340,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    do_sync_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
        - buffer
        - length
        - transferred
        - timeout
        - type
      BBCount:         32
      ICount:          202
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - libusb_alloc_transfer
        - libusb_fill_bulk_transfer
        - libusb_free_transfer
        - libusb_submit_transfer
        - sync_transfer_cb
        - sync_transfer_wait_for_completion
        - usbi_handling_events
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sync.c:183,27'
          Branch Sides:
            - BranchSide:      'sync.c:183,6'
              BranchSideFuncs:
                - usbi_handling_events.1219
                - libusb_alloc_transfer
                - libusb_fill_bulk_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
                - libusb_free_transfer
            - BranchSide:      'sync.c:183,6'
              BranchSideFuncs:
                - usbi_handling_events.1219
                - libusb_alloc_transfer
                - libusb_fill_bulk_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
                - libusb_free_transfer
        - Branch String:   'sync.c:183,6'
          Branch Sides:
            - BranchSide:      'sync.c:184,3'
              BranchSideFuncs: []
            - BranchSide:      'sync.c:186,13'
              BranchSideFuncs:
                - libusb_alloc_transfer
                - libusb_fill_bulk_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
                - libusb_free_transfer
        - Branch String:   'sync.c:187,6'
          Branch Sides:
            - BranchSide:      'sync.c:188,3'
              BranchSideFuncs:
                - libusb_fill_bulk_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
                - libusb_free_transfer
            - BranchSide:      'sync.c:190,28'
              BranchSideFuncs:
                - libusb_fill_bulk_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
                - libusb_free_transfer
        - Branch String:   'sync.c:195,6'
          Branch Sides:
            - BranchSide:      'sync.c:196,24'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:200,36'
              BranchSideFuncs:
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - __assert_fail
        - Branch String:   'sync.c:202,6'
          Branch Sides:
            - BranchSide:      'sync.c:203,3'
              BranchSideFuncs:
                - __assert_fail
                - libusb_free_transfer
                - usbi_log
            - BranchSide:      'sync.c:207,10'
              BranchSideFuncs:
                - libusb_free_transfer
                - usbi_log
        - Branch String:   'sync.c:203,3'
          Branch Sides:
            - BranchSide:      'sync.c:203,3'
              BranchSideFuncs:
                - libusb_free_transfer
                - usbi_log
            - BranchSide:      'sync.c:204,18'
              BranchSideFuncs:
                - libusb_free_transfer
                - usbi_log
        - Branch String:   'sync.c:207,2'
          Branch Sides:
            - BranchSide:      'sync.c:209,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:212,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:215,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:218,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:221,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:225,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:225,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:228,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
        - Branch String:   'sync.c:228,3'
          Branch Sides:
            - BranchSide:      'sync.c:233,23'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
            - BranchSide:      'sync.c:233,23'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
      Callsites:
        - Src:             'sync.c:183,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:186,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:190,2'
          Dst:             libusb_fill_bulk_transfer
        - Src:             'sync.c:190,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:194,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:196,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:200,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:203,3'
          Dst:             __assert_fail
        - Src:             'sync.c:228,3'
          Dst:             usbi_log
        - Src:             'sync.c:233,2'
          Dst:             libusb_free_transfer
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    sync_transfer_cb
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sync.c:38,2'
          Branch Sides:
            - BranchSide:      'sync.c:38,2'
              BranchSideFuncs:
                - usbi_log
            - BranchSide:      'sync.c:38,2'
              BranchSideFuncs:
                - usbi_log
      Callsites:
        - Src:             'sync.c:38,2'
          Dst:             usbi_log
    - functionName:    sync_transfer_wait_for_completion
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         16
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - libusb_cancel_transfer
        - libusb_error_name
        - libusb_handle_events_completed
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sync.c:52,31'
          Branch Sides:
            - BranchSide:      'sync.c:52,25'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
            - BranchSide:      'sync.c:52,25'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
        - Branch String:   'sync.c:54,2'
          Branch Sides:
            - BranchSide:      'sync.c:55,38'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
            - BranchSide:      'sync.c:70,1'
              BranchSideFuncs: []
        - Branch String:   'sync.c:56,7'
          Branch Sides:
            - BranchSide:      'sync.c:57,8'
              BranchSideFuncs:
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
                - libusb_handle_events_completed
            - BranchSide:      'sync.c:64,15'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
        - Branch String:   'sync.c:57,8'
          Branch Sides:
            - BranchSide:      'sync.c:58,5'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
            - BranchSide:      'sync.c:59,4'
              BranchSideFuncs:
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
                - libusb_handle_events_completed
        - Branch String:   'sync.c:64,7'
          Branch Sides:
            - BranchSide:      'sync.c:54,2'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
            - BranchSide:      'sync.c:66,4'
              BranchSideFuncs:
                - libusb_handle_events_completed
                - libusb_error_name
                - usbi_log
                - libusb_cancel_transfer
      Callsites:
        - Src:             'sync.c:55,7'
          Dst:             libusb_handle_events_completed
        - Src:             'sync.c:59,4'
          Dst:             libusb_error_name
        - Src:             'sync.c:59,4'
          Dst:             usbi_log
        - Src:             'sync.c:61,4'
          Dst:             libusb_cancel_transfer
    - functionName:    libusb_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - endpoint
        - data
        - length
        - transferred
        - timeout
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:286,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    libusb_control_transfer_get_data
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1857
      functionLinenumberEnd: 1858
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - transfer
      BBCount:         1
      ICount:          11
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_fill_control_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1955
      functionLinenumberEnd: 1967
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - transfer
        - dev_handle
        - buffer
        - callback
        - user_data
        - timeout
      BBCount:         6
      ICount:          80
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:
        - Branch String:   './libusb.h:1962,6'
          Branch Sides:
            - BranchSide:      './libusb.h:1962,6'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1217
            - BranchSide:      './libusb.h:1964,25'
              BranchSideFuncs:
                - libusb_cpu_to_le16.1217
      Callsites:
        - Src:             './libusb.h:1964,6'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_fill_control_setup
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1905
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - buffer
        - bmRequestType
        - bRequest
        - wValue
        - wIndex
        - wLength
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:1909,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1910,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1911,19'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_control_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - dev_handle
        - bmRequestType
        - bRequest
        - wValue
        - wIndex
        - data
        - wLength
        - timeout
      BBCount:         34
      ICount:          243
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_alloc_transfer
        - libusb_control_transfer_get_data
        - libusb_fill_control_setup
        - libusb_fill_control_transfer
        - libusb_free_transfer
        - libusb_submit_transfer
        - sync_transfer_cb
        - sync_transfer_wait_for_completion
        - usbi_handling_events
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sync.c:112,27'
          Branch Sides:
            - BranchSide:      'sync.c:112,6'
              BranchSideFuncs:
                - usbi_handling_events.1219
                - libusb_alloc_transfer
                - malloc
                - libusb_free_transfer
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
            - BranchSide:      'sync.c:112,6'
              BranchSideFuncs:
                - usbi_handling_events.1219
                - libusb_alloc_transfer
                - malloc
                - libusb_free_transfer
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
        - Branch String:   'sync.c:112,6'
          Branch Sides:
            - BranchSide:      'sync.c:113,3'
              BranchSideFuncs: []
            - BranchSide:      'sync.c:115,13'
              BranchSideFuncs:
                - libusb_alloc_transfer
                - malloc
                - libusb_free_transfer
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
        - Branch String:   'sync.c:116,6'
          Branch Sides:
            - BranchSide:      'sync.c:117,3'
              BranchSideFuncs:
                - malloc
                - libusb_free_transfer
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
            - BranchSide:      'sync.c:119,46'
              BranchSideFuncs:
                - malloc
                - libusb_free_transfer
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
        - Branch String:   'sync.c:120,6'
          Branch Sides:
            - BranchSide:      'sync.c:121,24'
              BranchSideFuncs:
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
            - BranchSide:      'sync.c:125,28'
              BranchSideFuncs:
                - libusb_fill_control_setup
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
        - Branch String:   'sync.c:127,6'
          Branch Sides:
            - BranchSide:      'sync.c:128,10'
              BranchSideFuncs:
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
            - BranchSide:      'sync.c:130,31'
              BranchSideFuncs:
                - libusb_fill_control_transfer
                - libusb_submit_transfer
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
                - libusb_free_transfer
        - Branch String:   'sync.c:134,6'
          Branch Sides:
            - BranchSide:      'sync.c:135,24'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:139,36'
              BranchSideFuncs:
                - sync_transfer_wait_for_completion
                - libusb_free_transfer
                - usbi_log
                - libusb_control_transfer_get_data
        - Branch String:   'sync.c:141,6'
          Branch Sides:
            - BranchSide:      'sync.c:142,10'
              BranchSideFuncs:
                - libusb_control_transfer_get_data
                - libusb_free_transfer
                - usbi_log
            - BranchSide:      'sync.c:145,10'
              BranchSideFuncs:
                - libusb_free_transfer
                - usbi_log
        - Branch String:   'sync.c:145,2'
          Branch Sides:
            - BranchSide:      'sync.c:147,7'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:150,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:153,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:156,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:159,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:163,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:163,5'
              BranchSideFuncs:
                - libusb_free_transfer
            - BranchSide:      'sync.c:166,3'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
        - Branch String:   'sync.c:166,3'
          Branch Sides:
            - BranchSide:      'sync.c:171,23'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
            - BranchSide:      'sync.c:171,23'
              BranchSideFuncs:
                - usbi_log
                - libusb_free_transfer
      Callsites:
        - Src:             'sync.c:112,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:115,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:121,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:125,2'
          Dst:             libusb_fill_control_setup
        - Src:             'sync.c:130,2'
          Dst:             libusb_fill_control_transfer
        - Src:             'sync.c:130,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:133,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:135,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:139,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:142,16'
          Dst:             libusb_control_transfer_get_data
        - Src:             'sync.c:166,3'
          Dst:             usbi_log
        - Src:             'sync.c:171,2'
          Dst:             libusb_free_transfer
...
