---
Fuzzer filename: '/src/inspector/source-code/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: 201
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      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:    __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:    3
      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_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: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb/os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './libusb/os/threads_posix.h:62,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:    69
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL37usbi_libusb_transfer_to_usbi_transferPK15libusb_transfer
      functionSourceFile: '/src/libusb/./libusb/libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1597
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL25libusb_fill_control_setupPhhhttt
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1952
      functionLinenumberEnd: 1959
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ZL18libusb_cpu_to_le16t
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb/libusb.h:1956,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1957,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1958,19'
          Dst:             _ZL18libusb_cpu_to_le16t
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/inspector/source-code/src/libusb_fuzzer.cc'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 10
      functionsReached:
        - _ZL18usbi_mutex_destroyP15pthread_mutex_t
        - _ZL25libusb_fill_control_setupPhhhttt
        - _ZL37usbi_libusb_transfer_to_usbi_transferPK15libusb_transfer
        - libusb_alloc_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'inspector/source-code/src/libusb_fuzzer.cc:34,14'
          Dst:             libusb_alloc_transfer
        - Src:             'inspector/source-code/src/libusb_fuzzer.cc:39,3'
          Dst:             _ZL25libusb_fill_control_setupPhhhttt
        - Src:             'inspector/source-code/src/libusb_fuzzer.cc:44,37'
          Dst:             _ZL37usbi_libusb_transfer_to_usbi_transferPK15libusb_transfer
        - Src:             'inspector/source-code/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: 264
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          36
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_cut
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          57
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - list_init
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:251,3'
          Dst:             list_init
        - Src:             './libusbi.h:260,2'
          Dst:             list_init
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      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: 97
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_setspecific
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:98,2'
          Dst:             pthread_setspecific
        - Src:             './os/threads_posix.h:98,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: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,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: 509
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:507,2'
          Dst:             __assert_fail
        - Src:             './libusbi.h:508,2'
          Dst:             usbi_tls_key_set
    - functionName:    handle_timer_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2197
      functionLinenumberEnd: 2210
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      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:2200,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2203,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2206,6'
          Dst:             arm_timer_for_next_timeout
        - Src:             'io.c:2208,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    handle_timeouts_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2074
      functionLinenumberEnd: 2104
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          135
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - handle_timeout
        - usbi_get_monotonic_time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2082,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2102,3'
          Dst:             handle_timeout
    - functionName:    arm_timer_for_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1358
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_arm_timer
        - usbi_disarm_timer
        - usbi_log
        - usbi_transfer_to_libusb_transfer
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1361,7'
          Dst:             usbi_using_timer
        - Src:             'io.c:1375,39'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:1376,4'
          Dst:             usbi_log
        - Src:             'io.c:1378,11'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1382,2'
          Dst:             usbi_log
        - Src:             'io.c:1383,9'
          Dst:             usbi_disarm_timer
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,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: 865
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_timer_valid
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:867,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_transfer_to_libusb_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:555,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:555,2'
          Dst:             __assert_fail
    - functionName:    handle_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2055
      functionLinenumberEnd: 2070
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_cancel_transfer
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2057,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:2061,6'
          Dst:             libusb_cancel_transfer
        - Src:             'io.c:2065,3'
          Dst:             usbi_transfer_ctx
        - Src:             'io.c:2065,3'
          Dst:             usbi_log
        - Src:             'io.c:2068,3'
          Dst:             usbi_transfer_ctx
        - Src:             'io.c:2068,3'
          Dst:             usbi_log
    - functionName:    libusb_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1641
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          121
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_itransfer_ctx
        - usbi_libusb_transfer_to_usbi_transfer
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1614,3'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             'io.c:1615,31'
          Dst:             usbi_itransfer_ctx
        - Src:             'io.c:1618,2'
          Dst:             usbi_log
        - Src:             'io.c:1619,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1629,4'
          Dst:             usbi_log
        - Src:             'io.c:1631,4'
          Dst:             usbi_log
        - Src:             'io.c:1640,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_transfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1617
      functionLinenumberEnd: 1618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_itransfer_ctx
        - usbi_libusb_transfer_to_usbi_transfer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1618,28'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             './libusbi.h:1618,9'
          Dst:             usbi_itransfer_ctx
    - functionName:    usbi_libusb_transfer_to_usbi_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1597
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_itransfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1613,26'
          Dst:             usbi_device_ctx
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - 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: 2115
      functionLinenumberEnd: 2192
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          301
      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:  []
      Callsites:
        - Src:             'io.c:2120,2'
          Dst:             usbi_log
        - Src:             'io.c:2122,2'
          Dst:             list_init
        - Src:             'io.c:2125,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2129,3'
          Dst:             usbi_log
        - Src:             'io.c:2132,3'
          Dst:             usbi_log
        - Src:             'io.c:2137,3'
          Dst:             usbi_log
        - Src:             'io.c:2144,3'
          Dst:             usbi_log
        - Src:             'io.c:2148,3'
          Dst:             usbi_log
        - Src:             'io.c:2151,3'
          Dst:             __assert_fail
        - Src:             'io.c:2152,3'
          Dst:             list_cut
        - Src:             'io.c:2160,3'
          Dst:             __assert_fail
        - Src:             'io.c:2161,3'
          Dst:             list_cut
        - Src:             'io.c:2162,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2165,4'
          Dst:             list_del
        - Src:             'io.c:2168,5'
          Dst:             usbi_log
        - Src:             'io.c:2173,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2176,4'
          Dst:             list_splice_front
        - Src:             'io.c:2184,3'
          Dst:             usbi_clear_event
        - Src:             'io.c:2186,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2190,3'
          Dst:             usbi_hotplug_process
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_start_event_handling
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 500
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:501,2'
          Dst:             __assert_fail
        - Src:             './libusbi.h:502,2'
          Dst:             usbi_tls_key_set
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:495,2'
          Dst:             __assert_fail
        - Src:             './libusbi.h:496,9'
          Dst:             usbi_tls_key_get
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    calculate_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_monotonic_time
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1249,37'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:1257,2'
          Dst:             usbi_get_monotonic_time
    - functionName:    usbi_handle_disconnect
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2823
      functionLinenumberEnd: 2874
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          146
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2827,2'
          Dst:             usbi_log
        - Src:             'io.c:2845,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2847,43'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:2849,5'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2852,5'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2858,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2864,48'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:2865,3'
          Dst:             usbi_log
        - Src:             'io.c:2869,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2871,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2872,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_handle_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1691
      functionLinenumberEnd: 1734
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          196
      EdgeCount:       33
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - libusb_free_transfer
        - libusb_lock_event_waiters
        - libusb_unlock_event_waiters
        - remove_from_flying_list
        - usbi_itransfer_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_transfer_to_libusb_transfer
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1693,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:1694,31'
          Dst:             usbi_itransfer_ctx
        - Src:             'io.c:1698,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1699,6'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1700,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1702,3'
          Dst:             usbi_log
        - Src:             'io.c:1704,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1706,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1714,4'
          Dst:             usbi_log
        - Src:             'io.c:1722,2'
          Dst:             __assert_fail
        - Src:             'io.c:1723,2'
          Dst:             usbi_log
        - Src:             'io.c:1726,3'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:1728,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:1733,3'
          Dst:             libusb_free_transfer
    - functionName:    remove_from_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          76
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - arm_timer_for_next_timeout
        - list_del
        - usbi_itransfer_ctx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1464,31'
          Dst:             usbi_itransfer_ctx
        - Src:             'io.c:1470,2'
          Dst:             list_del
        - Src:             'io.c:1472,7'
          Dst:             arm_timer_for_next_timeout
    - functionName:    libusb_lock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1990
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1991,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1992,2'
          Dst:             usbi_mutex_lock
    - functionName:    libusb_unlock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2004
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2002,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2003,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          90
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - libusb_unref_device
        - usbi_libusb_transfer_to_usbi_transfer
        - usbi_log
        - usbi_mutex_destroy
        - usbi_transfer_ctx
        - usbi_transfer_to_transfer_priv
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1337,2'
          Dst:             usbi_transfer_ctx
        - Src:             'io.c:1337,2'
          Dst:             usbi_log
        - Src:             'io.c:1341,36'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             'io.c:1342,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1344,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1346,23'
          Dst:             usbi_transfer_to_transfer_priv
        - Src:             'io.c:1347,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    usbi_transfer_to_transfer_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1587
      functionLinenumberEnd: 1588
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:465,4'
          Dst:             usbi_log
    - functionName:    libusb_free_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2810
      functionLinenumberEnd: 2816
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2763
      functionLinenumberEnd: 2790
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          102
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2772,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2774,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2780,33'
          Dst:             calloc
        - Src:             'io.c:2789,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: 2676
      functionLinenumberEnd: 2685
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_signal_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2684,3'
          Dst:             usbi_signal_event
    - functionName:    libusb_set_pollfd_notifiers
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2656
      functionLinenumberEnd: 2669
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2658,8'
          Dst:             usbi_get_context
    - functionName:    libusb_get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2583
      functionLinenumberEnd: 2630
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          257
      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:  []
      Callsites:
        - Src:             'io.c:2588,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2589,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:2592,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2594,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2595,3'
          Dst:             usbi_log
        - Src:             'io.c:2611,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2614,3'
          Dst:             usbi_log
        - Src:             'io.c:2618,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2621,3'
          Dst:             usbi_log
        - Src:             'io.c:2626,3'
          Dst:             usbi_log
    - functionName:    libusb_pollfds_handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2548
      functionLinenumberEnd: 2550
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_using_timer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2549,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2550,9'
          Dst:             usbi_using_timer
    - functionName:    libusb_handle_events_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2501
      functionLinenumberEnd: 2517
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_next_timeout
        - handle_events
        - handle_timeouts
        - usbi_get_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2508,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2509,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2512,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2516,9'
          Dst:             handle_events
    - functionName:    get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2310
      functionLinenumberEnd: 2327
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_get_next_timeout
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2312,10'
          Dst:             libusb_get_next_timeout
    - functionName:    handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2107
      functionLinenumberEnd: 2112
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - handle_timeouts_locked
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2108,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2109,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2110,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2111,2'
          Dst:             usbi_mutex_unlock
    - functionName:    handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2217
      functionLinenumberEnd: 2300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         38
      ICount:          244
      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:  []
      Callsites:
        - Src:             'io.c:2223,6'
          Dst:             usbi_handling_events
        - Src:             'io.c:2229,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2231,3'
          Dst:             usbi_log
        - Src:             'io.c:2234,3'
          Dst:             cleanup_removed_event_sources
        - Src:             'io.c:2236,7'
          Dst:             usbi_alloc_event_data
        - Src:             'io.c:2238,4'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2248,4'
          Dst:             usbi_clear_event
        - Src:             'io.c:2250,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2260,2'
          Dst:             usbi_start_event_handling
        - Src:             'io.c:2262,6'
          Dst:             usbi_wait_for_events
        - Src:             'io.c:2265,4'
          Dst:             handle_timeouts
        - Src:             'io.c:2272,7'
          Dst:             handle_event_trigger
        - Src:             'io.c:2281,7'
          Dst:             handle_timer_trigger
        - Src:             'io.c:2295,3'
          Dst:             usbi_log
        - Src:             'io.c:2298,2'
          Dst:             usbi_end_event_handling
    - functionName:    cleanup_removed_event_sources
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1218
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - list_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1222,3'
          Dst:             list_del
    - functionName:    libusb_handle_events_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2473
      functionLinenumberEnd: 2477
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2477,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2359
      functionLinenumberEnd: 2411
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          183
      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:  []
      Callsites:
        - Src:             'io.c:2366,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2367,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2370,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2375,6'
          Dst:             libusb_try_lock_events
        - Src:             'io.c:2378,4'
          Dst:             usbi_log
        - Src:             'io.c:2379,8'
          Dst:             handle_events
        - Src:             'io.c:2381,3'
          Dst:             libusb_unlock_events
        - Src:             'io.c:2387,2'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:2392,7'
          Dst:             libusb_event_handler_active
        - Src:             'io.c:2395,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2396,3'
          Dst:             usbi_log
        - Src:             'io.c:2400,2'
          Dst:             usbi_log
        - Src:             'io.c:2401,6'
          Dst:             libusb_wait_for_event
        - Src:             'io.c:2404,2'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2409,3'
          Dst:             handle_timeouts
    - functionName:    libusb_try_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_trylock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1807,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1811,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1813,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1815,3'
          Dst:             usbi_log
        - Src:             'io.c:1819,6'
          Dst:             usbi_mutex_trylock
    - functionName:    libusb_unlock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1861
      functionLinenumberEnd: 1872
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_cond_broadcast
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1862,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1864,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1869,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1870,2'
          Dst:             usbi_cond_broadcast
        - Src:             'io.c:1871,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handler_active
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1925
      functionLinenumberEnd: 1941
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1928,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1932,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1934,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1936,3'
          Dst:             usbi_log
    - functionName:    libusb_wait_for_event
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2051
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_cond_timedwait
        - usbi_cond_wait
        - usbi_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2036,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2038,3'
          Dst:             usbi_cond_wait
        - Src:             'io.c:2045,6'
          Dst:             usbi_cond_timedwait
    - functionName:    usbi_cond_wait
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:70,2'
          Dst:             pthread_cond_wait
        - Src:             './os/threads_posix.h:70,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: 79
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_broadcast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:80,2'
          Dst:             pthread_cond_broadcast
        - Src:             './os/threads_posix.h:80,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: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:57,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: 2450
      functionLinenumberEnd: 2454
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2454,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2431
      functionLinenumberEnd: 2432
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_handle_events_timeout_completed
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2432,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_interrupt_event_handler
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1957,2'
          Dst:             usbi_log
        - Src:             'io.c:1959,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1960,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1965,3'
          Dst:             usbi_signal_event
        - Src:             'io.c:1967,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handling_ok
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1896
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1899,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1903,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1905,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1907,3'
          Dst:             usbi_log
    - functionName:    libusb_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1850
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1847,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1848,2'
          Dst:             usbi_mutex_lock
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_signal_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1781
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_add_tail
        - usbi_device_ctx
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1770,32'
          Dst:             usbi_device_ctx
        - Src:             'io.c:1773,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1776,3'
          Dst:             list_add_tail
        - Src:             'io.c:1778,4'
          Dst:             usbi_signal_event
        - Src:             'io.c:1779,3'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_handle_transfer_cancellation
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1744
      functionLinenumberEnd: 1760
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_itransfer_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1745,31'
          Dst:             usbi_itransfer_ctx
        - Src:             'io.c:1748,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1750,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1754,3'
          Dst:             usbi_log
        - Src:             'io.c:1755,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'io.c:1759,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    libusb_transfer_get_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1674
      functionLinenumberEnd: 1678
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_libusb_transfer_to_usbi_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1676,3'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
    - functionName:    libusb_transfer_set_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1657
      functionLinenumberEnd: 1662
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_libusb_transfer_to_usbi_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1659,3'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
    - functionName:    add_to_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1398
      functionLinenumberEnd: 1454
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          257
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - calculate_timeout
        - list_add
        - list_add_tail
        - list_del
        - usbi_arm_timer
        - usbi_itransfer_ctx
        - usbi_log
        - usbi_transfer_to_libusb_transfer
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1401,31'
          Dst:             usbi_itransfer_ctx
        - Src:             'io.c:1405,2'
          Dst:             calculate_timeout
        - Src:             'io.c:1409,3'
          Dst:             list_add
        - Src:             'io.c:1415,3'
          Dst:             list_add_tail
        - Src:             'io.c:1426,4'
          Dst:             list_add_tail
        - Src:             'io.c:1434,2'
          Dst:             list_add_tail
        - Src:             'io.c:1437,15'
          Dst:             usbi_using_timer
        - Src:             'io.c:1441,38'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'io.c:1442,3'
          Dst:             usbi_log
        - Src:             'io.c:1445,7'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1452,3'
          Dst:             list_del
    - functionName:    usbi_handle_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1608,18'
          Dst:             usbi_device_ctx
    - functionName:    libusb_submit_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1573
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          170
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - add_to_flying_list
        - libusb_ref_device
        - libusb_unref_device
        - remove_from_flying_list
        - usbi_handle_ctx
        - usbi_libusb_transfer_to_usbi_transfer
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1494,3'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             'io.c:1498,2'
          Dst:             __assert_fail
        - Src:             'io.c:1500,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1501,19'
          Dst:             libusb_ref_device
        - Src:             'io.c:1503,8'
          Dst:             usbi_handle_ctx
        - Src:             'io.c:1504,2'
          Dst:             usbi_log
        - Src:             'io.c:1538,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1539,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1541,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1542,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1548,6'
          Dst:             add_to_flying_list
        - Src:             'io.c:1550,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1551,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1558,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1564,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1567,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1568,3'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1569,3'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_alloc_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1313
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - calloc
        - usbi_mutex_init
        - usbi_transfer_to_libusb_transfer
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1294,2'
          Dst:             __assert_fail
        - Src:             'io.c:1303,40'
          Dst:             calloc
        - Src:             'io.c:1309,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1310,37'
          Dst:             usbi_transfer_to_libusb_transfer
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,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: 1228
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          69
      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:  []
      Callsites:
        - Src:             'io.c:1230,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:1231,3'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1232,3'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1235,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1236,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1237,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1238,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1239,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1240,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1241,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1242,2'
          Dst:             usbi_tls_key_delete
        - Src:             'io.c:1243,2'
          Dst:             cleanup_removed_event_sources
    - functionName:    usbi_remove_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2715
      functionLinenumberEnd: 2743
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          115
      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:  []
      Callsites:
        - Src:             'io.c:2719,2'
          Dst:             usbi_log
        - Src:             'io.c:2720,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2729,3'
          Dst:             usbi_log
        - Src:             'io.c:2730,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2734,2'
          Dst:             list_del
        - Src:             'io.c:2735,2'
          Dst:             list_add_tail
        - Src:             'io.c:2736,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2737,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_cond_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:84,2'
          Dst:             pthread_cond_destroy
        - Src:             './os/threads_posix.h:84,2'
          Dst:             __assert_fail
    - functionName:    usbi_tls_key_delete
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:102,2'
          Dst:             pthread_key_delete
        - Src:             './os/threads_posix.h:102,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: 2691
      functionLinenumberEnd: 2711
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          84
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_add_tail
        - usbi_event_source_notification
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2697,2'
          Dst:             usbi_log
        - Src:             'io.c:2700,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2701,2'
          Dst:             list_add_tail
        - Src:             'io.c:2702,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2703,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_tls_key_create
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:90,2'
          Dst:             pthread_key_create
        - Src:             './os/threads_posix.h:90,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: 1163
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          149
      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:  []
      Callsites:
        - Src:             'io.c:1166,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1167,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1168,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1169,2'
          Dst:             usbi_cond_init
        - Src:             'io.c:1170,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1171,2'
          Dst:             usbi_tls_key_create
        - 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:1175,2'
          Dst:             list_init
        - Src:             'io.c:1176,2'
          Dst:             list_init
        - Src:             'io.c:1178,6'
          Dst:             usbi_create_event
        - Src:             'io.c:1182,6'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1187,6'
          Dst:             usbi_create_timer
        - Src:             'io.c:1189,3'
          Dst:             usbi_log
        - Src:             'io.c:1190,7'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1194,3'
          Dst:             usbi_log
        - Src:             'io.c:1202,2'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1203,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1206,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1208,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1209,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1210,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1211,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1212,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1213,2'
          Dst:             usbi_tls_key_delete
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 865
      functionLinenumberEnd: 867
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_timer_valid
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:867,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_wait_for_events
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         59
      ICount:          369
      EdgeCount:       75
      CyclomaticComplexity: 18
      functionsReached:
        - __assert_fail
        - __errno_location
        - poll
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:264,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:273,18'
          Dst:             poll
        - Src:             'os/events_posix.c:274,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:276,7'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:280,7'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:282,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:282,3'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:287,2'
          Dst:             __assert_fail
        - Src:             'os/events_posix.c:297,2'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:297,2'
          Dst:             __assert_fail
        - Src:             'os/events_posix.c:298,6'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:313,17'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:317,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/events_posix.c:331,5'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:338,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/events_posix.c:340,2'
          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:    89
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_alloc_event_data
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          137
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:240,40'
          Dst:             calloc
    - functionName:    usbi_disarm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:216,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:217,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:217,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: 201
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:204,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:205,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:205,3'
          Dst:             usbi_log
    - functionName:    usbi_destroy_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:196,6'
          Dst:             close
        - Src:             'os/events_posix.c:197,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:197,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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_create_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 184
      functionLinenumberEnd: 192
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_create
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:185,19'
          Dst:             timerfd_create
        - Src:             'os/events_posix.c:187,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:187,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: 170
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - read
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:174,6'
          Dst:             read
        - Src:             'os/events_posix.c:176,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: 156
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
        - write
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:160,6'
          Dst:             write
        - Src:             'os/events_posix.c:162,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: 143
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:145,6'
          Dst:             close
        - Src:             'os/events_posix.c:146,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:146,3'
          Dst:             usbi_log
    - functionName:    usbi_create_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - eventfd
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:79,19'
          Dst:             eventfd
        - Src:             'os/events_posix.c:81,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:81,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: 94
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_self
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:117,23'
          Dst:             syscall
        - Src:             'os/threads_posix.c:132,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: 554
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:555,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:555,2'
          Dst:             __assert_fail
    - functionName:    usbi_cond_timedwait
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_cond_timedwait
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:65,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'os/threads_posix.c:77,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: 45
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_init
        - pthread_condattr_destroy
        - pthread_condattr_init
        - pthread_condattr_setclock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:49,2'
          Dst:             pthread_condattr_init
        - Src:             'os/threads_posix.c:49,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:50,2'
          Dst:             pthread_condattr_setclock
        - Src:             'os/threads_posix.c:50,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:51,2'
          Dst:             pthread_cond_init
        - Src:             'os/threads_posix.c:51,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:52,2'
          Dst:             pthread_condattr_destroy
        - Src:             'os/threads_posix.c:52,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: 2837
      functionLinenumberEnd: 2894
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         26
      ICount:          191
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_itransfer_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2856,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2838,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2841,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2842,2'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2842,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2848,4'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2848,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2852,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2853,10'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2865,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2865,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2869,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2869,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2873,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2873,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2881,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2881,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2885,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2885,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2892,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2893,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_get_transfer_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 912
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_itransfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1613,26'
          Dst:             usbi_device_ctx
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_bulk_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2578
      functionLinenumberEnd: 2711
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         65
      ICount:          473
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - discard_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_itransfer_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2637,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2579,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2580,37'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2583,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2584,2'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2584,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2591,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2591,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2612,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2612,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2614,5'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2614,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2623,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2623,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2647,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2647,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2651,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2651,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2657,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2657,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2666,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2666,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2670,3'
          Dst:             usbi_itransfer_ctx
        - Src:             'os/linux_usbfs.c:2670,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2678,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2678,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2681,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2681,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2698,2'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2701,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2707,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2709,3'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2710,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_transfer_to_libusb_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_transfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1617
      functionLinenumberEnd: 1618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_itransfer_ctx
        - usbi_libusb_transfer_to_usbi_transfer
      functionUses:    40
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1618,28'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             './libusbi.h:1618,9'
          Dst:             usbi_itransfer_ctx
    - functionName:    discard_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2094
      functionLinenumberEnd: 2124
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          143
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2096,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2097,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2099,38'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2109,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2112,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2113,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2113,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2116,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2117,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2117,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2120,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2120,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2120,4'
          Dst:             usbi_log
    - functionName:    usbi_get_device_handle_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 906
      functionLinenumberEnd: 907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      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:    usbi_libusb_transfer_to_usbi_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1597
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_iso_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2715
      functionLinenumberEnd: 2833
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         51
      ICount:          375
      EdgeCount:       57
      CyclomaticComplexity: 8
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2750,3'
          Branch Sides:    []
        - Branch String:   'os/linux_usbfs.c:2806,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2717,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2718,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2724,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2732,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2732,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2733,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2737,2'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2737,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2758,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2758,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2762,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2762,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2766,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2766,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2775,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2775,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2779,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2779,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2790,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2790,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2793,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2793,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2794,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2796,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2797,12'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2799,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2800,12'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2813,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2813,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2817,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2817,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2824,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2824,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2825,3'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2826,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2827,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2831,2'
          Dst:             usbi_mutex_unlock
    - functionName:    free_iso_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2128
      functionLinenumberEnd: 2141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          60
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    reap_for_handle
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2897
      functionLinenumberEnd: 2933
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          135
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - handle_bulk_completion
        - handle_control_completion
        - handle_iso_completion
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
        - usbi_transfer_to_libusb_transfer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2920,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2898,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2904,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2906,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2908,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2911,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2911,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2911,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2916,13'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2918,2'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2918,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2922,10'
          Dst:             handle_iso_completion
        - Src:             'os/linux_usbfs.c:2926,10'
          Dst:             handle_bulk_completion
        - Src:             'os/linux_usbfs.c:2928,10'
          Dst:             handle_control_completion
        - Src:             'os/linux_usbfs.c:2930,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2930,3'
          Dst:             usbi_log
    - functionName:    usbi_handle_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    24
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1608,18'
          Dst:             usbi_device_ctx
    - functionName:    usbi_is_xferin
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_is_xferout
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1637
      functionLinenumberEnd: 1638
      functionDepth:   0
      returnType:      bool
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_is_xferin
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1638,10'
          Dst:             usbi_is_xferin
    - functionName:    submit_iso_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2316
      functionLinenumberEnd: 2460
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          405
      EdgeCount:       61
      CyclomaticComplexity: 17
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - free_iso_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2318,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2319,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2321,38'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2343,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2343,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2358,2'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2358,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2360,30'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2380,29'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2382,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2408,11'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2413,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2415,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2416,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2416,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2418,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2419,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2419,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2422,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2422,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2422,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2429,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2429,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2430,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2452,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2454,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2454,3'
          Dst:             usbi_log
    - functionName:    submit_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2144
      functionLinenumberEnd: 2313
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         76
      ICount:          529
      EdgeCount:       100
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_is_xferout
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2222,3'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2146,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2147,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2149,38'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2151,15'
          Dst:             usbi_is_xferout
        - Src:             'os/linux_usbfs.c:2208,2'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2208,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2209,29'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2257,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2261,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2263,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2266,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2266,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2266,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2273,4'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2273,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2295,24'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2305,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2307,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2307,3'
          Dst:             usbi_log
    - functionName:    submit_control_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2463
      functionLinenumberEnd: 2499
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          129
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - calloc
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2464,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2466,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2468,38'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2475,28'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2488,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2492,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2495,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2495,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2495,3'
          Dst:             usbi_log
    - functionName:    do_streams_ioctl
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1864
      functionLinenumberEnd: 1896
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          130
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1865,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1880,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1885,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1887,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1889,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1892,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1892,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1892,3'
          Dst:             usbi_log
    - functionName:    release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1749
      functionLinenumberEnd: 1762
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1750,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1752,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1755,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1758,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1758,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1758,3'
          Dst:             usbi_log
    - functionName:    claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1729
      functionLinenumberEnd: 1746
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          81
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1730,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1732,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1735,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1737,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1739,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1742,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1742,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1742,3'
          Dst:             usbi_log
    - functionName:    detach_kernel_driver_and_claim
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2027
      functionLinenumberEnd: 2059
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       19
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - claim_interface
        - ioctl
        - op_detach_kernel_driver
        - snprintf
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2038,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2028,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2033,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:2035,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2038,10'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2048,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2048,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2048,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2054,6'
          Dst:             op_detach_kernel_driver
        - Src:             'os/linux_usbfs.c:2058,9'
          Dst:             claim_interface
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1961
      functionLinenumberEnd: 1991
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          121
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1962,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1973,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1974,17'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1977,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1979,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1981,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1983,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1986,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1986,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1986,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:    initialize_handle
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1563
      functionLinenumberEnd: 1578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_add_event_source
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1564,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1569,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1571,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1572,4'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1572,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1574,4'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1574,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1574,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1578,31'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1578,9'
          Dst:             usbi_add_event_source
    - functionName:    linux_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 213
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:209,2'
          Dst:             linux_udev_hotplug_poll
    - functionName:    read_sysfs_string_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          110
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - open
        - read_sysfs_attr_fd
        - snprintf
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:534,6'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:536,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:539,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:541,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:544,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:548,9'
          Dst:             read_sysfs_attr_fd
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_sysfs_attr_fd
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 495
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          134
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - close
        - read
        - strlen
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:476,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:480,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:482,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:483,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:486,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:489,2'
          Dst:             close
        - Src:             'os/linux_usbfs.c:494,14'
          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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sysfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 802
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_sysfs_attr
        - usbi_device_ctx
        - usbi_get_device_priv
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:799,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:801,25'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:801,9'
          Dst:             read_sysfs_attr
    - functionName:    usbi_get_device_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 902
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 714
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          258
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - close
        - open_sysfs_attr
        - read
        - strtol
        - usbi_log
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:720,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:724,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:726,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:727,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:730,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:733,2'
          Dst:             close
        - Src:             'os/linux_usbfs.c:745,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:752,2'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:753,10'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:759,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:761,53'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:762,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:769,25'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:771,11'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:775,4'
          Dst:             usbi_log
    - functionName:    open_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - open
        - snprintf
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:696,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:697,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:699,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:704,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:704,3'
          Dst:             usbi_log
    - 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:    __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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_usbdev_entry
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          101
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __isoc99_sscanf
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:249,6'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:252,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:256,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: 198
      functionLinenumberEnd: 204
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:200,2'
          Dst:             linux_udev_stop_event_monitor
    - functionName:    linux_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      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:672,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:675,8'
          Dst:             linux_udev_scan_devices
        - Src:             'os/linux_usbfs.c:680,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    linux_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 179
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:179,9'
          Dst:             linux_udev_start_event_monitor
    - functionName:    find_usbfs_path
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         28
      ICount:          131
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - closedir
        - is_usbdev_entry
        - opendir
        - readdir
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:271,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:273,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:281,3'
          Dst:             closedir
        - Src:             'os/linux_usbfs.c:289,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:291,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:295,8'
          Dst:             is_usbdev_entry
        - Src:             'os/linux_usbfs.c:301,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: 339
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          91
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_kernel_version
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 335
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - uname
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:318,6'
          Dst:             uname
        - Src:             'os/linux_usbfs.c:319,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:319,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:323,10'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:325,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:332,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: 896
      functionLinenumberEnd: 897
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sysfs_scan_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 794
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - linux_enumerate_device
        - linux_get_device_address
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:789,8'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:793,9'
          Dst:             linux_enumerate_device
    - functionName:    linux_get_device_address
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 808
      functionLinenumberEnd: 856
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          183
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - __isoc99_sscanf
        - read_sysfs_attr
        - readlink
        - snprintf
        - strncmp
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:812,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:821,4'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:822,8'
          Dst:             readlink
        - Src:             'os/linux_usbfs.c:833,8'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:834,4'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:841,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:843,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:848,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:853,2'
          Dst:             usbi_log
    - functionName:    linux_enumerate_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1329
      functionLinenumberEnd: 1371
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          135
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1338,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1340,8'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1343,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1344,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1348,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1350,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1354,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1357,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1361,6'
          Dst:             linux_get_parent_info
        - Src:             'os/linux_usbfs.c:1366,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1368,3'
          Dst:             usbi_connect_device
    - functionName:    initialize_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1129
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          443
      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_device_ctx
        - usbi_get_device_priv
        - usbi_localize_device_descriptor
        - usbi_log
        - usbi_reallocf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1147,4'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1130,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1131,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:1140,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:1146,7'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:1155,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1159,16'
          Dst:             usbfs_get_speed
        - Src:             'os/linux_usbfs.c:1164,8'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:1166,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1169,7'
          Dst:             lseek
        - Src:             'os/linux_usbfs.c:1171,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1171,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1184,23'
          Dst:             usbi_reallocf
        - Src:             'os/linux_usbfs.c:1187,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1194,8'
          Dst:             read
        - Src:             'os/linux_usbfs.c:1196,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1196,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1198,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1205,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1208,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1212,6'
          Dst:             parse_config_descriptors
        - Src:             'os/linux_usbfs.c:1220,3'
          Dst:             usbi_localize_device_descriptor
        - Src:             'os/linux_usbfs.c:1226,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1232,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1242,6'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1244,3'
          Dst:             close
    - functionName:    linux_get_parent_info
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1250
      functionLinenumberEnd: 1325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          284
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - asprintf
        - libusb_ref_device
        - strchr
        - strcmp
        - strdup
        - strncmp
        - strrchr
        - strtol
        - sysfs_scan_device
        - usbi_device_ctx
        - usbi_get_device_priv
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1251,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:1257,21'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:1262,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:1266,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1267,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1269,22'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:1271,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1280,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1287,7'
          Dst:             strchr
        - Src:             'os/linux_usbfs.c:1289,9'
          Dst:             asprintf
        - Src:             'os/linux_usbfs.c:1297,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1299,64'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1302,9'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1303,23'
          Dst:             libusb_ref_device
        - Src:             'os/linux_usbfs.c:1308,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:1311,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1313,3'
          Dst:             sysfs_scan_device
        - Src:             'os/linux_usbfs.c:1318,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: 1108
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          69
      EdgeCount:       25
      CyclomaticComplexity: 14
      functionsReached:
        - ioctl
        - usbi_log
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1112,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1111,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1121,3'
          Dst:             usbi_log
    - functionName:    get_usbfs_fd
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          204
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - nanosleep
        - open
        - snprintf
        - usbi_device_ctx
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:194,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:199,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:202,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:205,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:210,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:217,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:220,4'
          Dst:             nanosleep
        - Src:             'os/linux_usbfs.c:222,9'
          Dst:             open
        - Src:             'os/linux_usbfs.c:225,8'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:231,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:231,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:232,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:233,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:236,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:238,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: 272
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:273,14'
          Dst:             realloc
    - functionName:    parse_config_descriptors
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 901
      functionLinenumberEnd: 994
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          315
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - libusb_cpu_to_le16
        - seek_to_next_config
        - usbi_device_ctx
        - usbi_get_device_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:902,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:903,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:927,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:934,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:938,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:943,16'
          Dst:             libusb_cpu_to_le16
        - Src:             'os/linux_usbfs.c:945,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:959,14'
          Dst:             seek_to_next_config
        - Src:             'os/linux_usbfs.c:968,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:978,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:984,4'
          Dst:             usbi_log
    - functionName:    usbi_localize_device_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 545
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:546,17'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:547,19'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:548,20'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:549,20'
          Dst:             libusb_cpu_to_le16
    - functionName:    usbfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1062
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          129
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_device_ctx
        - usbi_get_device_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1063,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1077,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1079,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1083,3'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:1083,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1083,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1093,7'
          Dst:             dev_has_config0
    - functionName:    dev_has_config0
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:179,63'
          Dst:             usbi_get_device_priv
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      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: 861
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          131
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:872,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:881,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:886,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:896,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: 2937
      functionLinenumberEnd: 3004
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          292
      EdgeCount:       68
      CyclomaticComplexity: 18
      functionsReached:
        - linux_device_disconnected
        - reap_for_handle
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - 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:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2942,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2954,47'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2960,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2969,29'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2969,4'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:2974,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:2976,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:2978,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:2982,10'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2986,4'
          Dst:             usbi_handle_disconnect
        - Src:             'os/linux_usbfs.c:2992,8'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:3003,2'
          Dst:             usbi_mutex_unlock
    - functionName:    linux_device_disconnected
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1385
      functionLinenumberEnd: 1401
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1390,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1392,9'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1394,4'
          Dst:             usbi_disconnect_device
        - Src:             'os/linux_usbfs.c:1395,4'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1397,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1400,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    op_clear_transfer_priv
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2550
      functionLinenumberEnd: 2574
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          95
      EdgeCount:       18
      CyclomaticComplexity: 3
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2555,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2552,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2553,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2567,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2572,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2572,3'
          Dst:             usbi_log
    - functionName:    op_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2523
      functionLinenumberEnd: 2547
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          89
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - discard_urbs
        - usbi_get_transfer_priv
        - usbi_transfer_to_libusb_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2536,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2524,68'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2526,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2532,6'
          Dst:             discard_urbs
    - functionName:    op_submit_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2502
      functionLinenumberEnd: 2520
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       21
      CyclomaticComplexity: 12
      functionsReached:
        - submit_bulk_transfer
        - submit_control_transfer
        - submit_iso_transfer
        - usbi_log
        - usbi_transfer_ctx
        - usbi_transfer_to_libusb_transfer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2506,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2504,3'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'os/linux_usbfs.c:2508,10'
          Dst:             submit_control_transfer
        - Src:             'os/linux_usbfs.c:2511,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2513,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2515,10'
          Dst:             submit_iso_transfer
        - Src:             'os/linux_usbfs.c:2517,3'
          Dst:             usbi_transfer_ctx
        - Src:             'os/linux_usbfs.c:2517,3'
          Dst:             usbi_log
    - functionName:    op_destroy_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2084
      functionLinenumberEnd: 2090
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2085,63'
          Dst:             usbi_get_device_priv
    - functionName:    op_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1995
      functionLinenumberEnd: 2023
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1996,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2005,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2007,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2009,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2011,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2013,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2016,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:2016,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2016,3'
          Dst:             usbi_log
    - functionName:    op_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1938
      functionLinenumberEnd: 1957
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1939,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1945,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1947,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1949,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1952,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1952,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1952,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1956,9'
          Dst:             strcmp
    - functionName:    op_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1927
      functionLinenumberEnd: 1934
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - munmap
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1928,6'
          Dst:             munmap
        - Src:             'os/linux_usbfs.c:1929,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1929,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1929,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: 1913
      functionLinenumberEnd: 1923
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - mmap
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1914,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1917,11'
          Dst:             mmap
        - Src:             'os/linux_usbfs.c:1919,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1919,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1919,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: 1907
      functionLinenumberEnd: 1909
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_streams_ioctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1908,9'
          Dst:             do_streams_ioctl
    - functionName:    op_alloc_streams
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1900
      functionLinenumberEnd: 1902
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_streams_ioctl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1901,9'
          Dst:             do_streams_ioctl
    - functionName:    op_reset_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1810
      functionLinenumberEnd: 1858
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          163
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - detach_kernel_driver_and_claim
        - ioctl
        - libusb_error_name
        - release_interface
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1811,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1823,4'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1826,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1827,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1829,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1834,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1834,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1834,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1848,7'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1850,4'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1850,4'
          Dst:             libusb_error_name
        - Src:             'os/linux_usbfs.c:1850,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1857,2'
          Dst:             usbi_mutex_unlock
    - functionName:    op_clear_halt
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1790
      functionLinenumberEnd: 1807
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          74
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1791,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1794,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1797,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1799,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1802,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1802,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1802,3'
          Dst:             usbi_log
    - functionName:    op_set_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1786
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1767,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1774,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1776,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1778,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1781,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1781,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1781,3'
          Dst:             usbi_log
    - functionName:    op_release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2070
      functionLinenumberEnd: 2081
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - op_attach_kernel_driver
        - release_interface
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2073,6'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:2078,3'
          Dst:             op_attach_kernel_driver
    - functionName:    op_claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2062
      functionLinenumberEnd: 2067
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - claim_interface
        - detach_kernel_driver_and_claim
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2064,10'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:2066,10'
          Dst:             claim_interface
    - functionName:    op_set_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1699
      functionLinenumberEnd: 1726
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          122
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1700,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1701,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1703,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1706,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1708,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1710,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1713,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1713,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1713,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1719,23'
          Dst:             dev_has_config0
    - functionName:    op_get_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1671
      functionLinenumberEnd: 1696
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          101
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sysfs_get_active_config
        - usbfs_get_active_config
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1672,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1677,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:1679,79'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1681,7'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1689,3'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1689,3'
          Dst:             usbi_log
    - functionName:    op_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 998
      functionLinenumberEnd: 1012
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          82
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:999,63'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1058
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          79
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1048,63'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1016
      functionLinenumberEnd: 1043
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          110
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - op_get_config_descriptor_by_value
        - sysfs_get_active_config
        - usbi_device_ctx
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1017,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1023,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:1032,3'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:1032,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1036,6'
          Dst:             op_get_config_descriptor_by_value
    - functionName:    op_close
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1659
      functionLinenumberEnd: 1667
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - usbi_get_device_handle_priv
        - usbi_handle_ctx
        - usbi_remove_event_source
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1660,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1664,28'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1664,3'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:1666,3'
          Dst:             close
    - functionName:    op_open
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1632
      functionLinenumberEnd: 1656
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - close
        - get_usbfs_fd
        - initialize_handle
        - linux_device_disconnected
        - usbi_handle_ctx
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1635,7'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1640,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1642,5'
          Dst:             usbi_handle_ctx
        - Src:             'os/linux_usbfs.c:1642,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1643,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:1646,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:1651,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1653,3'
          Dst:             close
    - functionName:    op_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1583
      functionLinenumberEnd: 1629
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          146
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1584,78'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1591,6'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:1593,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1595,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1595,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1606,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1607,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1611,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1614,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1622,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1627,3'
          Dst:             libusb_unref_device
    - functionName:    op_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_hotplug_poll
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:687,2'
          Dst:             linux_hotplug_poll
    - functionName:    op_get_interface_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 666
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          285
      EdgeCount:       69
      CyclomaticComplexity: 20
      functionsReached:
        - __assert_fail
        - read_sysfs_attr
        - read_sysfs_string_attr
        - snprintf
        - sysfs_get_active_config
        - usbi_device_ctx
        - usbi_get_device_priv
        - usbi_get_interface_string_index
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:599,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:600,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:607,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:615,6'
          Dst:             usbi_get_interface_string_index
        - Src:             'os/linux_usbfs.c:623,6'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:631,6'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:634,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:639,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:659,7'
          Dst:             usbi_get_interface_string_index
        - Src:             'os/linux_usbfs.c:665,9'
          Dst:             read_sysfs_string_attr
    - functionName:    op_get_config_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          166
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - read_sysfs_string_attr
        - sysfs_get_active_config
        - usbi_device_ctx
        - usbi_get_config_string_index
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:554,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:555,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:559,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:567,6'
          Dst:             usbi_get_config_string_index
        - Src:             'os/linux_usbfs.c:580,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:586,8'
          Dst:             usbi_get_config_string_index
        - Src:             'os/linux_usbfs.c:592,9'
          Dst:             read_sysfs_string_attr
    - functionName:    op_get_device_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 519
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       13
      CyclomaticComplexity: 2
      functionsReached:
        - open_sysfs_attr
        - read_sysfs_attr_fd
        - usbi_device_ctx
        - usbi_get_device_priv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:505,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:501,63'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:502,31'
          Dst:             usbi_device_ctx
        - Src:             'os/linux_usbfs.c:514,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:518,9'
          Dst:             read_sysfs_attr_fd
    - functionName:    op_set_option
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:453,67'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:455,3'
          Dst:             usbi_log
    - functionName:    op_exit
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 434
      functionLinenumberEnd: 446
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - linux_stop_event_monitor
        - usbi_get_context_priv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:435,66'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:441,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:444,3'
          Dst:             linux_stop_event_monitor
    - functionName:    op_init
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 359
      functionLinenumberEnd: 431
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          224
      EdgeCount:       61
      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:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:363,66'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:365,6'
          Dst:             get_kernel_version
        - Src:             'os/linux_usbfs.c:368,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:369,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:375,15'
          Dst:             find_usbfs_path
        - Src:             'os/linux_usbfs.c:382,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:384,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:388,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:390,12'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:396,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:401,7'
          Dst:             statfs
        - Src:             'os/linux_usbfs.c:403,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:406,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:418,7'
          Dst:             linux_start_event_monitor
        - Src:             'os/linux_usbfs.c:421,7'
          Dst:             linux_scan_devices
        - Src:             'os/linux_usbfs.c:425,4'
          Dst:             linux_stop_event_monitor
        - Src:             'os/linux_usbfs.c:427,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: 1374
      functionLinenumberEnd: 1382
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - linux_enumerate_device
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1377,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1379,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_usbfs.c:1381,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    udev_hotplug_event
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:239,17'
          Dst:             udev_device_get_action
        - Src:             'os/linux_udev.c:244,15'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:246,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:251,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:253,7'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:254,4'
          Dst:             linux_hotplug_enumerate
        - Src:             'os/linux_udev.c:256,4'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_udev.c:257,14'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:260,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:264,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: 213
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - linux_get_device_address
        - udev_device_get_devnode
        - udev_device_get_sysname
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:216,13'
          Dst:             udev_device_get_devnode
        - Src:             'os/linux_udev.c:221,14'
          Dst:             udev_device_get_sysname
        - Src:             'os/linux_udev.c:226,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: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    linux_udev_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          43
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:314,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:316,14'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:318,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:319,4'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:322,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: 268
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          107
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:275,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:277,15'
          Dst:             udev_enumerate_new
        - Src:             'os/linux_udev.c:279,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:283,2'
          Dst:             udev_enumerate_add_match_subsystem
        - Src:             'os/linux_udev.c:284,2'
          Dst:             udev_enumerate_add_match_property
        - Src:             'os/linux_udev.c:285,2'
          Dst:             udev_enumerate_scan_devices
        - Src:             'os/linux_udev.c:286,12'
          Dst:             udev_enumerate_get_list_entry
        - Src:             'os/linux_udev.c:290,22'
          Dst:             udev_list_entry_get_name
        - Src:             'os/linux_udev.c:293,14'
          Dst:             udev_device_new_from_syspath
        - Src:             'os/linux_udev.c:295,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:297,4'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:301,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_udev.c:302,3'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:289,2'
          Dst:             udev_list_entry_get_next
        - Src:             'os/linux_udev.c:305,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: 134
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          70
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:137,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:138,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:139,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:142,2'
          Dst:             usbi_signal_event
        - Src:             'os/linux_udev.c:144,6'
          Dst:             pthread_join
        - Src:             'os/linux_udev.c:146,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:148,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:152,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:157,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: 164
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          116
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:177,25'
          Dst:             pthread_self
        - Src:             'os/linux_udev.c:177,6'
          Dst:             pthread_setname_np
        - Src:             'os/linux_udev.c:179,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:182,2'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:185,7'
          Dst:             poll
        - Src:             'os/linux_udev.c:188,8'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:190,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:190,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:198,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:199,15'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:201,5'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:202,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_udev.c:206,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: 47
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         37
      ICount:          196
      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:  []
      Callsites:
        - Src:             'os/linux_udev.c:50,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:51,13'
          Dst:             udev_new
        - Src:             'os/linux_udev.c:53,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:57,17'
          Dst:             udev_monitor_new_from_netlink
        - Src:             'os/linux_udev.c:59,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:63,6'
          Dst:             udev_monitor_filter_add_match_subsystem_devtype
        - Src:             'os/linux_udev.c:65,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:69,6'
          Dst:             udev_monitor_enable_receiving
        - Src:             'os/linux_udev.c:70,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:74,20'
          Dst:             udev_monitor_get_fd
        - Src:             'os/linux_udev.c:78,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:80,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:80,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:84,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:85,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:85,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:93,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:95,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:95,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:99,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:100,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:100,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:105,6'
          Dst:             usbi_create_event
        - Src:             'os/linux_udev.c:107,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:111,6'
          Dst:             pthread_create
        - Src:             'os/linux_udev.c:111,6'
          Dst:             linux_udev_event_thread_main
        - Src:             'os/linux_udev.c:113,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:120,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:123,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:127,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: 2897
      functionLinenumberEnd: 2936
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fputs
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2934,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_transfer_to_libusb_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_get_version
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3124
      functionLinenumberEnd: 3125
      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: 3069
      functionLinenumberEnd: 3116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          117
      EdgeCount:       44
      CyclomaticComplexity: 23
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'core.c:3070,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    log_v
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2940
      functionLinenumberEnd: 3044
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          300
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - get_env_debug_level
        - log_str
        - snprintf
        - usbi_get_monotonic_time
        - usbi_get_tid
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2966,2'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2957,41'
          Dst:             get_env_debug_level
        - Src:             'core.c:2968,3'
          Dst:             __assert_fail
        - Src:             'core.c:2992,4'
          Dst:             log_str
        - Src:             'core.c:2993,4'
          Dst:             log_str
        - Src:             'core.c:2996,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:3001,63'
          Dst:             usbi_get_tid
        - Src:             'core.c:2999,16'
          Dst:             snprintf
        - Src:             'core.c:3003,16'
          Dst:             snprintf
        - Src:             'core.c:3017,13'
          Dst:             vsnprintf
        - Src:             'core.c:3027,9'
          Dst:             snprintf
        - Src:             'core.c:3032,9'
          Dst:             snprintf
        - Src:             'core.c:3037,2'
          Dst:             log_str
    - functionName:    get_env_debug_level
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2570
      functionLinenumberEnd: 2578
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - getenv
        - strtol
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2572,20'
          Dst:             getenv
        - Src:             'core.c:2574,20'
          Dst:             strtol
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 554
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:555,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:555,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: 2765
      functionLinenumberEnd: 2828
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          173
      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:  []
      Callsites:
        - Src:             'core.c:2769,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2775,4'
          Dst:             usbi_log
        - Src:             'core.c:2776,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2781,4'
          Dst:             usbi_log
        - Src:             'core.c:2782,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2786,3'
          Dst:             usbi_log
        - Src:             'core.c:2789,3'
          Dst:             usbi_log
        - Src:             'core.c:2793,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2794,2'
          Dst:             list_del
        - Src:             'core.c:2795,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2798,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2808,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2813,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2816,3'
          Dst:             usbi_log
        - Src:             'core.c:2822,3'
          Dst:             usbi_log
        - Src:             'core.c:2824,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2825,2'
          Dst:             usbi_mutex_destroy
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    usbi_log
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3048
      functionLinenumberEnd: 3054
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - log_v
      functionUses:    322
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:3052,2'
          Dst:             log_v
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_init_context
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2611
      functionLinenumberEnd: 2757
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          438
      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:2670,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2616,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2619,3'
          Dst:             usbi_log
        - Src:             'core.c:2621,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2626,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2628,3'
          Dst:             list_init
        - Src:             'core.c:2629,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2631,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2633,34'
          Dst:             calloc
        - Src:             'core.c:2635,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2641,6'
          Dst:             getenv
        - Src:             'core.c:2642,17'
          Dst:             get_env_debug_level
        - Src:             'core.c:2649,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2650,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2651,2'
          Dst:             list_init
        - Src:             'core.c:2652,2'
          Dst:             list_init
        - Src:             'core.c:2660,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2662,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2672,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2680,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2693,3'
          Dst:             usbi_log
        - Src:             'core.c:2696,2'
          Dst:             usbi_log
        - Src:             'core.c:2700,6'
          Dst:             usbi_io_init
        - Src:             'core.c:2704,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2705,2'
          Dst:             list_add
        - Src:             'core.c:2706,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2715,2'
          Dst:             usbi_hotplug_init
        - Src:             'core.c:2726,4'
          Dst:             usbi_log
        - Src:             'core.c:2730,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2735,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2736,2'
          Dst:             list_del
        - Src:             'core.c:2737,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2739,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2740,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2749,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2750,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2754,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_option
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2481
      functionLinenumberEnd: 2561
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         61
      ICount:          306
      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:2527,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2512,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2518,5'
          Dst:             libusb_set_log_cb_internal
        - Src:             'core.c:2520,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2523,9'
          Dst:             usbi_get_context
        - Src:             'core.c:2550,4'
          Dst:             libusb_set_log_cb_internal
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_set_log_cb_internal
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2406
      functionLinenumberEnd: 2425
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2414,9'
          Dst:             usbi_get_context
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:465,4'
          Dst:             usbi_log
    - functionName:    libusb_init
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2588
      functionLinenumberEnd: 2589
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_init_context
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2589,9'
          Dst:             libusb_init_context
    - functionName:    libusb_set_log_cb
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2452
      functionLinenumberEnd: 2454
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_set_log_cb_internal
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2453,2'
          Dst:             libusb_set_log_cb_internal
    - functionName:    libusb_set_debug
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2400
      functionLinenumberEnd: 2402
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_set_option
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2401,2'
          Dst:             libusb_set_option
    - functionName:    libusb_get_max_raw_io_transfer_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2387
      functionLinenumberEnd: 2393
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_endpoint_set_raw_io
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2363
      functionLinenumberEnd: 2368
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_endpoint_supports_raw_io
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2311
      functionLinenumberEnd: 2322
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          54
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2318,2'
          Dst:             __assert_fail
        - Src:             'core.c:2319,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_auto_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2282
      functionLinenumberEnd: 2288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2243
      functionLinenumberEnd: 2256
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2244,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2244,2'
          Dst:             usbi_log
    - functionName:    usbi_handle_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1608,18'
          Dst:             usbi_device_ctx
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    18
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2207
      functionLinenumberEnd: 2220
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2208,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2208,2'
          Dst:             usbi_log
    - functionName:    libusb_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2169
      functionLinenumberEnd: 2182
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2170,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2170,2'
          Dst:             usbi_log
    - functionName:    libusb_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2143
      functionLinenumberEnd: 2148
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_dev_mem_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2123
      functionLinenumberEnd: 2131
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_free_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2080
      functionLinenumberEnd: 2094
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2081,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2081,2'
          Dst:             usbi_log
    - functionName:    libusb_alloc_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2050
      functionLinenumberEnd: 2064
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2051,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2051,2'
          Dst:             usbi_log
    - functionName:    libusb_reset_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2016
      functionLinenumberEnd: 2025
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2017,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:2017,2'
          Dst:             usbi_log
    - functionName:    libusb_clear_halt
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1988
      functionLinenumberEnd: 1994
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1989,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1989,2'
          Dst:             usbi_log
    - functionName:    libusb_set_interface_alt_setting
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1947
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          114
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1948,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1948,2'
          Dst:             usbi_log
        - Src:             'core.c:1959,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1961,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1964,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    libusb_release_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1902
      functionLinenumberEnd: 1922
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1905,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1905,2'
          Dst:             usbi_log
        - Src:             'core.c:1909,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1920,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_claim_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1853
      functionLinenumberEnd: 1874
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          109
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1856,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1856,2'
          Dst:             usbi_log
        - Src:             'core.c:1863,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1872,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_set_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1816
      functionLinenumberEnd: 1821
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1817,2'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1817,2'
          Dst:             usbi_log
    - functionName:    libusb_get_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1729
      functionLinenumberEnd: 1757
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          105
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - libusb_control_transfer
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1732,31'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1734,2'
          Dst:             usbi_log
        - Src:             'core.c:1739,3'
          Dst:             usbi_log
        - Src:             'core.c:1740,7'
          Dst:             libusb_control_transfer
        - Src:             'core.c:1745,4'
          Dst:             usbi_log
        - Src:             'core.c:1748,4'
          Dst:             usbi_log
        - Src:             'core.c:1753,3'
          Dst:             usbi_log
    - functionName:    libusb_get_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1703
      functionLinenumberEnd: 1704
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1627
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          142
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - libusb_unref_device
        - list_del
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_transfer_to_libusb_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1580,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1585,4'
          Dst:             usbi_transfer_to_libusb_transfer
        - Src:             'core.c:1591,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1593,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1595,4'
          Dst:             usbi_log
        - Src:             'core.c:1598,5'
          Dst:             usbi_log
        - Src:             'core.c:1600,5'
          Dst:             usbi_log
        - Src:             'core.c:1607,3'
          Dst:             list_del
        - Src:             'core.c:1614,3'
          Dst:             usbi_log
        - Src:             'core.c:1617,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1619,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1620,2'
          Dst:             list_del
        - Src:             'core.c:1621,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1624,2'
          Dst:             libusb_unref_device
        - Src:             'core.c:1625,2'
          Dst:             usbi_mutex_destroy
    - functionName:    libusb_unref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1349
      functionLinenumberEnd: 1391
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          183
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - libusb_has_capability
        - libusb_unref_device
        - list_del
        - usbi_device_ctx
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1355,7'
          Dst:             libusb_has_capability
        - Src:             'core.c:1362,32'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1364,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1366,3'
          Dst:             __assert_fail
        - Src:             'core.c:1368,4'
          Dst:             list_del
        - Src:             'core.c:1371,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1374,3'
          Dst:             __assert_fail
        - Src:             'core.c:1378,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1378,3'
          Dst:             usbi_log
        - Src:             'core.c:1380,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_has_capability
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2839
      functionLinenumberEnd: 2851
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          45
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    7
      BranchProfiles:
        - Branch String:   'core.c:2840,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:495,2'
          Dst:             __assert_fail
        - Src:             './libusbi.h:496,9'
          Dst:             usbi_tls_key_get
    - functionName:    libusb_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1641
      functionLinenumberEnd: 1692
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          146
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - do_close
        - libusb_lock_events
        - libusb_unlock_events
        - usbi_clear_event
        - usbi_handle_ctx
        - usbi_handling_events
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1648,8'
          Dst:             usbi_handle_ctx
        - Src:             'core.c:1649,2'
          Dst:             usbi_log
        - Src:             'core.c:1651,20'
          Dst:             usbi_handling_events
        - Src:             'core.c:1664,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1669,4'
          Dst:             usbi_signal_event
        - Src:             'core.c:1670,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1673,3'
          Dst:             libusb_lock_events
        - Src:             'core.c:1677,2'
          Dst:             do_close
        - Src:             'core.c:1682,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1686,4'
          Dst:             usbi_clear_event
        - Src:             'core.c:1687,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1690,3'
          Dst:             libusb_unlock_events
    - functionName:    libusb_open_device_with_vid_pid
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1540
      functionLinenumberEnd: 1571
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          125
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_free_device_list
        - libusb_get_device_descriptor
        - libusb_get_device_list
        - libusb_open
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1548,6'
          Dst:             libusb_get_device_list
        - Src:             'core.c:1553,7'
          Dst:             libusb_get_device_descriptor
        - Src:             'core.c:1563,7'
          Dst:             libusb_open
        - Src:             'core.c:1569,2'
          Dst:             libusb_free_device_list
    - functionName:    libusb_get_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 851
      functionLinenumberEnd: 910
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          197
      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:  []
      Callsites:
        - Src:             'core.c:852,37'
          Dst:             discovered_devs_alloc
        - Src:             'core.c:857,2'
          Dst:             usbi_log
        - Src:             'core.c:862,8'
          Dst:             usbi_get_context
        - Src:             'core.c:864,6'
          Dst:             libusb_has_capability
        - Src:             'core.c:871,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:873,15'
          Dst:             discovered_devs_append
        - Src:             'core.c:880,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:893,33'
          Dst:             calloc
        - Src:             'core.c:902,12'
          Dst:             libusb_ref_device
        - Src:             'core.c:908,3'
          Dst:             discovered_devs_free
    - functionName:    libusb_open
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1519
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          125
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - libusb_ref_device
        - libusb_unref_device
        - list_add
        - usbi_device_ctx
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1486,31'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1491,2'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1491,2'
          Dst:             usbi_log
        - Src:             'core.c:1496,47'
          Dst:             calloc
        - Src:             'core.c:1500,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1502,21'
          Dst:             libusb_ref_device
        - Src:             'core.c:1506,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1506,3'
          Dst:             usbi_log
        - Src:             'core.c:1507,3'
          Dst:             libusb_unref_device
        - Src:             'core.c:1508,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1513,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1514,2'
          Dst:             list_add
        - Src:             'core.c:1515,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 933
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          57
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - libusb_unref_device
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:930,4'
          Dst:             libusb_unref_device
    - functionName:    libusb_ref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1340
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1337,2'
          Dst:             __assert_fail
    - functionName:    discovered_devs_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 667
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    discovered_devs_append
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 692
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          97
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - discovered_devs_free
        - libusb_ref_device
        - realloc
        - usbi_device_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:699,28'
          Dst:             libusb_ref_device
        - Src:             'core.c:705,2'
          Dst:             usbi_device_ctx
        - Src:             'core.c:705,2'
          Dst:             usbi_log
        - Src:             'core.c:709,43'
          Dst:             realloc
        - Src:             'core.c:712,3'
          Dst:             discovered_devs_free
        - Src:             'core.c:718,27'
          Dst:             libusb_ref_device
    - functionName:    discovered_devs_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 679
      functionLinenumberEnd: 686
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          42
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_unref_device
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:683,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1430
      functionLinenumberEnd: 1462
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          99
      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:  []
      Callsites:
        - Src:             'core.c:1435,2'
          Dst:             usbi_log
        - Src:             'core.c:1437,8'
          Dst:             usbi_get_context
        - Src:             'core.c:1442,47'
          Dst:             calloc
        - Src:             'core.c:1446,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1450,3'
          Dst:             usbi_log
        - Src:             'core.c:1451,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1456,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1457,2'
          Dst:             list_add
        - Src:             'core.c:1458,2'
          Dst:             usbi_mutex_unlock
    - functionName:    find_alt_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1150
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          102
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_max_alt_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1300
      functionLinenumberEnd: 1324
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_alt_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_device_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1305,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1307,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1307,3'
          Dst:             usbi_log
        - Src:             'core.c:1312,7'
          Dst:             find_alt_endpoint
        - Src:             'core.c:1319,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1322,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    get_endpoint_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1203
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          123
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_free_ss_endpoint_companion_descriptor
        - libusb_get_device_speed
        - libusb_get_ss_endpoint_companion_descriptor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1183,10'
          Dst:             libusb_get_device_speed
        - Src:             'core.c:1185,7'
          Dst:             libusb_get_ss_endpoint_companion_descriptor
        - Src:             'core.c:1188,4'
          Dst:             libusb_free_ss_endpoint_companion_descriptor
    - functionName:    libusb_get_device_speed
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1075
      functionLinenumberEnd: 1076
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      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: 1241
      functionLinenumberEnd: 1264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_device_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1246,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1248,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1248,3'
          Dst:             usbi_log
        - Src:             'core.c:1253,7'
          Dst:             find_endpoint
        - Src:             'core.c:1259,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1262,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    find_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1081
      functionLinenumberEnd: 1102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          110
      EdgeCount:       19
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1145
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_device_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1127,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1129,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1129,3'
          Dst:             usbi_log
        - Src:             'core.c:1134,7'
          Dst:             find_endpoint
        - Src:             'core.c:1143,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    libusb_get_device_address
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1064
      functionLinenumberEnd: 1065
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_parent
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1054
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_port_path
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1038
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          30
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_get_port_numbers
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1038,9'
          Dst:             libusb_get_port_numbers
    - functionName:    libusb_get_port_numbers
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          136
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_device_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1000,31'
          Dst:             usbi_device_ctx
        - Src:             'core.c:1012,3'
          Dst:             usbi_log
    - functionName:    libusb_get_port_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_bus_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 961
      functionLinenumberEnd: 962
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_session_data
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 952
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      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: 813
      functionLinenumberEnd: 826
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_ref_device
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:817,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:820,10'
          Dst:             libusb_ref_device
        - Src:             'core.c:824,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_sanitize_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 788
      functionLinenumberEnd: 806
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_device_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:793,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:793,3'
          Dst:             usbi_log
        - Src:             'core.c:799,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:799,3'
          Dst:             usbi_log
        - Src:             'core.c:802,3'
          Dst:             usbi_device_ctx
        - Src:             'core.c:802,3'
          Dst:             usbi_log
    - functionName:    usbi_disconnect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_detach_device
        - usbi_device_ctx
        - usbi_hotplug_notification
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:780,2'
          Dst:             usbi_detach_device
        - Src:             'core.c:781,28'
          Dst:             usbi_device_ctx
        - Src:             'core.c:781,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_detach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 768
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_del
        - usbi_device_ctx
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:769,31'
          Dst:             usbi_device_ctx
        - Src:             'core.c:773,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:774,2'
          Dst:             list_del
        - Src:             'core.c:775,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_connect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 765
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_attach_device
        - usbi_device_ctx
        - usbi_hotplug_notification
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:763,2'
          Dst:             usbi_attach_device
        - Src:             'core.c:764,28'
          Dst:             usbi_device_ctx
        - Src:             'core.c:764,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_attach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          34
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_add
        - usbi_device_ctx
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:752,31'
          Dst:             usbi_device_ctx
        - Src:             'core.c:756,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:757,2'
          Dst:             list_add
        - Src:             'core.c:758,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_alloc_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 728
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:730,54'
          Dst:             calloc
    - functionName:    parse_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1394
      functionLinenumberEnd: 1466
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          311
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1406,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1416,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1421,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1432,59'
          Dst:             calloc
    - functionName:    clear_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clear_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - clear_endpoint
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:159,6'
          Dst:             clear_endpoint
    - functionName:    parse_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          361
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:63,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:70,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:74,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:77,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:86,29'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:103,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:107,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:119,3'
          Dst:             usbi_log
    - functionName:    ReadLittleEndian16
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 334
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          581
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - clear_interface
        - parse_endpoint
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:195,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:199,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:204,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:208,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:214,54'
          Dst:             realloc
        - Src:             'descriptor.c:252,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:258,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:300,52'
          Dst:             calloc
        - Src:             'descriptor.c:308,9'
          Dst:             parse_endpoint
        - Src:             'descriptor.c:332,2'
          Dst:             clear_interface
    - functionName:    parse_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         53
      ICount:          455
      EdgeCount:       71
      CyclomaticComplexity: 20
      functionsReached:
        - ReadLittleEndian16
        - calloc
        - clear_configuration
        - parse_interface
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:362,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:369,26'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:377,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:381,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:384,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:388,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:392,45'
          Dst:             calloc
        - Src:             'descriptor.c:408,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:414,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:428,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:438,36'
          Dst:             realloc
        - Src:             'descriptor.c:450,7'
          Dst:             parse_interface
        - Src:             'descriptor.c:480,2'
          Dst:             clear_configuration
    - functionName:    clear_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 337
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          74
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - clear_interface
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:342,4'
          Dst:             clear_interface
    - functionName:    libusb_get_interface_string
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1912
      functionLinenumberEnd: 1937
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          94
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_utf8_copy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1936,9'
          Dst:             usbi_utf8_copy
    - functionName:    usbi_utf8_copy
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1619
      functionLinenumberEnd: 1656
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          184
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1631,16'
          Dst:             strlen
        - Src:             'descriptor.c:1651,16'
          Dst:             strlen
    - functionName:    libusb_get_config_string
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1838
      functionLinenumberEnd: 1862
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_utf8_copy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1861,9'
          Dst:             usbi_utf8_copy
    - functionName:    usbi_get_interface_string_index
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1771
      functionLinenumberEnd: 1797
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          151
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - get_config_descriptor_for_value
        - libusb_free_config_descriptor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1775,6'
          Dst:             get_config_descriptor_for_value
        - Src:             'descriptor.c:1795,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    get_config_descriptor_for_value
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1746
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          41
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_get_active_config_descriptor
        - libusb_get_config_descriptor_by_value
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1744,10'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'descriptor.c:1745,9'
          Dst:             libusb_get_config_descriptor_by_value
    - functionName:    libusb_free_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 710
      functionLinenumberEnd: 716
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clear_configuration
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:714,2'
          Dst:             clear_configuration
    - functionName:    libusb_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 583
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
        - usbi_device_ctx
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:589,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:593,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:598,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:600,26'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:600,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 698
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_get_config_descriptor
        - raw_desc_to_config
        - usbi_device_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:682,29'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:682,10'
          Dst:             raw_desc_to_config
        - Src:             'descriptor.c:685,2'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:685,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:689,7'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:694,11'
          Dst:             libusb_get_config_descriptor
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    raw_desc_to_config
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 486
      functionLinenumberEnd: 504
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - parse_configuration
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:487,80'
          Dst:             calloc
        - Src:             'descriptor.c:493,6'
          Dst:             parse_configuration
        - Src:             'descriptor.c:495,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:499,3'
          Dst:             usbi_log
    - functionName:    get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 543
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          81
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_device_ctx
        - usbi_log
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:534,3'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:534,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:538,3'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:538,3'
          Dst:             usbi_log
    - functionName:    libusb_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          105
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
        - usbi_device_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:630,2'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:630,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:634,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:638,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:643,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:645,26'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:645,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 524
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          78
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_device_ctx
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:515,3'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:515,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:519,3'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:519,3'
          Dst:             usbi_log
    - functionName:    usbi_get_config_string_index
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1752
      functionLinenumberEnd: 1763
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - get_config_descriptor_for_value
        - libusb_free_config_descriptor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1756,6'
          Dst:             get_config_descriptor_for_value
        - Src:             'descriptor.c:1761,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    libusb_get_device_string
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1697
      functionLinenumberEnd: 1736
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          161
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - usbi_utf8_copy
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1735,9'
          Dst:             usbi_utf8_copy
    - functionName:    libusb_free_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1602
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          40
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_active_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1559
      functionLinenumberEnd: 1582
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          89
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
        - usbi_device_ctx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1568,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1572,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1577,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1579,29'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:1579,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    raw_desc_to_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1470
      functionLinenumberEnd: 1487
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - parse_iad_array
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1472,61'
          Dst:             calloc
        - Src:             'descriptor.c:1478,6'
          Dst:             parse_iad_array
        - Src:             'descriptor.c:1480,3'
          Dst:             usbi_log
    - functionName:    libusb_get_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1510
      functionLinenumberEnd: 1538
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          113
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
        - usbi_device_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1519,2'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:1519,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:1523,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1527,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1532,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1534,29'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:1534,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    libusb_get_string_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2281
      functionLinenumberEnd: 2284
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - short
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_control_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2282,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_string_descriptor_ascii
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1334
      functionLinenumberEnd: 1389
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          282
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - libusb_cpu_to_le16
        - libusb_get_string_descriptor
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1351,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1355,3'
          Dst:             usbi_handle_ctx
        - Src:             'descriptor.c:1355,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1358,3'
          Dst:             usbi_handle_ctx
        - Src:             'descriptor.c:1358,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1360,11'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1361,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1367,3'
          Dst:             usbi_handle_ctx
        - Src:             'descriptor.c:1367,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1380,11'
          Dst:             libusb_cpu_to_le16
    - functionName:    usbi_handle_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1608,18'
          Dst:             usbi_device_ctx
    - functionName:    libusb_free_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1316
      functionLinenumberEnd: 1318
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1304
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          132
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1274,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1279,3'
          Dst:             usbi_log
    - functionName:    libusb_free_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1210
      functionLinenumberEnd: 1236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          107
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1214,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1219,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1190
      functionLinenumberEnd: 1192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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: 1173
      functionLinenumberEnd: 1175
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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: 1096
      functionLinenumberEnd: 1158
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          289
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - ReadLittleEndian16
        - ReadLittleEndian32
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1104,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1109,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1119,34'
          Dst:             ReadLittleEndian32
        - Src:             'descriptor.c:1120,43'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1121,31'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1140,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1147,19'
          Dst:             ReadLittleEndian32
    - functionName:    ReadLittleEndian32
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      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: 1016
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          128
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1020,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1025,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1038,40'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1041,38'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_usb_2_0_extension_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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: 958
      functionLinenumberEnd: 983
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          100
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ReadLittleEndian32
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:962,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:967,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:979,37'
          Dst:             ReadLittleEndian32
    - functionName:    libusb_free_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 939
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          53
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_bos
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 793
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          308
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - ReadLittleEndian16
        - calloc
        - libusb_free_bos_descriptor
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:800,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:807,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:811,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:814,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:819,41'
          Dst:             calloc
        - Src:             'descriptor.c:825,23'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:833,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:839,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:843,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:845,4'
          Dst:             libusb_free_bos_descriptor
        - Src:             'descriptor.c:848,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:855,4'
          Dst:             libusb_free_bos_descriptor
    - functionName:    libusb_get_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2259
      functionLinenumberEnd: 2262
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_control_transfer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2260,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 881
      functionLinenumberEnd: 920
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          135
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - calloc
        - libusb_cpu_to_le16
        - libusb_get_descriptor
        - parse_bos
        - usbi_handle_ctx
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:886,31'
          Dst:             usbi_handle_ctx
        - Src:             'descriptor.c:890,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:893,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:897,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:902,12'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:903,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:905,24'
          Dst:             calloc
        - Src:             'descriptor.c:909,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:912,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:913,17'
          Dst:             usbi_handle_ctx
        - Src:             'descriptor.c:913,7'
          Dst:             parse_bos
        - Src:             'descriptor.c:915,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_endpoint_companion_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      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: 735
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          179
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:746,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:754,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:758,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:770,35'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_get_device_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_device_ctx
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:560,2'
          Dst:             usbi_device_ctx
        - Src:             'descriptor.c:560,2'
          Dst:             usbi_log
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_hotplug_get_user_data
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 487
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          87
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - libusb_has_capability
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:492,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:495,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:497,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:499,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:506,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:465,4'
          Dst:             usbi_log
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    libusb_hotplug_deregister_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 449
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          125
      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:  []
      Callsites:
        - Src:             'hotplug.c:454,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:457,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:459,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:461,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:470,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:475,3'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:479,4'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:480,3'
          Dst:             usbi_mutex_unlock
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_hotplug_register_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 365
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          367
      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:  []
      Callsites:
        - Src:             'hotplug.c:379,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:382,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:384,47'
          Dst:             calloc
        - Src:             'hotplug.c:404,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:415,2'
          Dst:             list_add
        - Src:             'hotplug.c:417,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:419,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:426,9'
          Dst:             libusb_get_device_list
        - Src:             'hotplug.c:428,4'
          Dst:             libusb_hotplug_deregister_callback
        - Src:             'hotplug.c:433,4'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:438,3'
          Dst:             libusb_free_device_list
    - functionName:    usbi_hotplug_match_cb
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          147
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_device_ctx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:276,24'
          Dst:             usbi_device_ctx
    - functionName:    usbi_hotplug_process
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          197
      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:  []
      Callsites:
        - Src:             'hotplug.c:317,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:328,4'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:329,8'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:330,4'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:333,5'
          Dst:             list_del
        - Src:             'hotplug.c:341,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:343,3'
          Dst:             list_del
        - Src:             'hotplug.c:350,4'
          Dst:             usbi_log
        - Src:             'hotplug.c:352,4'
          Dst:             list_del
        - Src:             'hotplug.c:357,2'
          Dst:             usbi_mutex_unlock
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 242
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_hotplug_notification
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          87
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - list_add_tail
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:291,39'
          Dst:             calloc
        - Src:             'hotplug.c:293,3'
          Dst:             usbi_log
        - Src:             'hotplug.c:302,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:305,2'
          Dst:             list_add_tail
        - Src:             'hotplug.c:307,3'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:308,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    usbi_recursively_remove_parents
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - list_del
        - usbi_recursively_remove_parents
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:193,4'
          Dst:             __assert_fail
        - Src:             'hotplug.c:195,5'
          Dst:             list_del
        - Src:             'hotplug.c:199,3'
          Dst:             usbi_recursively_remove_parents
    - functionName:    usbi_hotplug_exit
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 252
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          186
      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:  []
      Callsites:
        - Src:             'hotplug.c:210,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:218,3'
          Dst:             list_del
        - Src:             'hotplug.c:229,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:231,3'
          Dst:             list_del
        - Src:             'hotplug.c:235,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:242,4'
          Dst:             list_del
        - Src:             'hotplug.c:245,3'
          Dst:             usbi_recursively_remove_parents
        - Src:             'hotplug.c:247,3'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:249,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:251,2'
          Dst:             usbi_mutex_destroy
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 218
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,2'
          Dst:             __assert_fail
    - functionName:    usbi_hotplug_init
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_has_capability
        - list_init
        - usbi_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:173,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:176,2'
          Dst:             usbi_mutex_init
        - Src:             'hotplug.c:177,2'
          Dst:             list_init
    - functionName:    libusb_fill_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2041
      functionLinenumberEnd: 2050
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          51
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_libusb_transfer_to_usbi_transfer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1597
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_itransfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1613,26'
          Dst:             usbi_device_ctx
    - functionName:    usbi_device_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1602
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_transfer_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1617
      functionLinenumberEnd: 1618
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_itransfer_ctx
        - usbi_libusb_transfer_to_usbi_transfer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1618,28'
          Dst:             usbi_libusb_transfer_to_usbi_transfer
        - Src:             './libusbi.h:1618,9'
          Dst:             usbi_itransfer_ctx
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      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: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_interrupt_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 348
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:346,2'
          Dst:             __assert_fail
        - Src:             'sync.c:347,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    do_sync_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         29
      ICount:          174
      EdgeCount:       32
      CyclomaticComplexity: 5
      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_handle_ctx
        - usbi_handling_events
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sync.c:213,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:187,2'
          Dst:             __assert_fail
        - Src:             'sync.c:189,27'
          Dst:             usbi_handle_ctx
        - Src:             'sync.c:189,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:192,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:196,2'
          Dst:             libusb_fill_bulk_transfer
        - Src:             'sync.c:196,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:200,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:202,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:206,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:209,3'
          Dst:             __assert_fail
        - Src:             'sync.c:234,3'
          Dst:             usbi_handle_ctx
        - Src:             'sync.c:234,3'
          Dst:             usbi_log
        - Src:             'sync.c:239,2'
          Dst:             libusb_free_transfer
    - functionName:    usbi_handle_ctx
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1608
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_device_ctx
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:1608,18'
          Dst:             usbi_device_ctx
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - usbi_tls_key_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:495,2'
          Dst:             __assert_fail
        - Src:             './libusbi.h:496,9'
          Dst:             usbi_tls_key_get
    - functionName:    sync_transfer_cb
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_log
        - usbi_transfer_ctx
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:40,2'
          Dst:             usbi_transfer_ctx
        - Src:             'sync.c:40,2'
          Dst:             usbi_log
    - functionName:    sync_transfer_wait_for_completion
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          79
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - libusb_cancel_transfer
        - libusb_error_name
        - libusb_handle_events_completed
        - usbi_handle_ctx
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:54,31'
          Dst:             usbi_handle_ctx
        - Src:             'sync.c:57,7'
          Dst:             libusb_handle_events_completed
        - Src:             'sync.c:61,4'
          Dst:             libusb_error_name
        - Src:             'sync.c:61,4'
          Dst:             usbi_log
        - Src:             'sync.c:63,4'
          Dst:             libusb_cancel_transfer
    - functionName:    libusb_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 293
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:292,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    libusb_control_transfer_get_data
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1904
      functionLinenumberEnd: 1905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_fill_control_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2002
      functionLinenumberEnd: 2022
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2011,6'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_fill_control_setup
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1952
      functionLinenumberEnd: 1959
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - short
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:1956,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1957,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1958,19'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_control_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          213
      EdgeCount:       36
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - 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_handle_ctx
        - usbi_handling_events
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sync.c:149,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:114,2'
          Dst:             __assert_fail
        - Src:             'sync.c:116,27'
          Dst:             usbi_handle_ctx
        - Src:             'sync.c:116,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:119,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:125,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:129,2'
          Dst:             libusb_fill_control_setup
        - Src:             'sync.c:134,2'
          Dst:             libusb_fill_control_transfer
        - Src:             'sync.c:134,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:137,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:139,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:143,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:146,16'
          Dst:             libusb_control_transfer_get_data
        - Src:             'sync.c:170,3'
          Dst:             usbi_handle_ctx
        - Src:             'sync.c:170,3'
          Dst:             usbi_log
        - Src:             'sync.c:175,2'
          Dst:             libusb_free_transfer
...
