---
Fuzzer filename: '/src/inspector/light/source_files/src/libusb_fuzzer.cc'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL18libusb_cpu_to_le16t
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      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: 58
      functionLinenumberEnd: 60
      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:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './libusb/os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    56
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL25libusb_fill_control_setupPhhhttt
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1931
      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:1928,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1929,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1930,19'
          Dst:             _ZL18libusb_cpu_to_le16t
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/inspector/light/source_files/src/libusb_fuzzer.cc'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          112
      EdgeCount:       19
      CyclomaticComplexity: 10
      functionsReached:
        - _ZL18usbi_mutex_destroyP15pthread_mutex_t
        - _ZL25libusb_fill_control_setupPhhhttt
        - libusb_alloc_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'inspector/light/source_files/src/libusb_fuzzer.cc:34,14'
          Dst:             libusb_alloc_transfer
        - Src:             'inspector/light/source_files/src/libusb_fuzzer.cc:39,3'
          Dst:             _ZL25libusb_fill_control_setupPhhhttt
        - Src:             'inspector/light/source_files/src/libusb_fuzzer.cc:45,3'
          Dst:             _ZL18usbi_mutex_destroyP15pthread_mutex_t
    - functionName:    list_splice_front
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 240
      functionLinenumberEnd: 252
      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:242,3'
          Dst:             list_init
        - Src:             './libusbi.h:251,2'
          Dst:             list_init
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 94
      functionLinenumberEnd: 96
      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:95,2'
          Dst:             pthread_setspecific
        - Src:             './os/threads_posix.h:95,2'
          Dst:             __assert_fail
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:91,9'
          Dst:             pthread_getspecific
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_end_event_handling
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 506
      functionLinenumberEnd: 508
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:507,2'
          Dst:             usbi_tls_key_set
    - functionName:    handle_timer_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2192
      functionLinenumberEnd: 2205
      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:2195,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2198,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2201,6'
          Dst:             arm_timer_for_next_timeout
        - Src:             'io.c:2203,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    handle_timeouts_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2069
      functionLinenumberEnd: 2099
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          139
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - handle_timeout
        - usbi_get_monotonic_time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2077,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2097,3'
          Dst:             handle_timeout
    - functionName:    arm_timer_for_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1356
      functionLinenumberEnd: 1382
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_arm_timer
        - usbi_disarm_timer
        - usbi_log
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1359,7'
          Dst:             usbi_using_timer
        - Src:             'io.c:1374,4'
          Dst:             usbi_log
        - Src:             'io.c:1376,11'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1380,2'
          Dst:             usbi_log
        - Src:             'io.c:1381,9'
          Dst:             usbi_disarm_timer
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 870
      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:870,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 553
      functionLinenumberEnd: 555
      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:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    handle_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2053
      functionLinenumberEnd: 2065
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          63
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_cancel_transfer
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2059,6'
          Dst:             libusb_cancel_transfer
        - Src:             'io.c:2063,3'
          Dst:             usbi_log
    - functionName:    libusb_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1610
      functionLinenumberEnd: 1639
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          138
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1616,2'
          Dst:             usbi_log
        - Src:             'io.c:1617,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1627,4'
          Dst:             usbi_log
        - Src:             'io.c:1629,4'
          Dst:             usbi_log
        - Src:             'io.c:1638,2'
          Dst:             usbi_mutex_unlock
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_event_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2110
      functionLinenumberEnd: 2187
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          307
      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:2115,2'
          Dst:             usbi_log
        - Src:             'io.c:2117,2'
          Dst:             list_init
        - Src:             'io.c:2120,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2124,3'
          Dst:             usbi_log
        - Src:             'io.c:2127,3'
          Dst:             usbi_log
        - Src:             'io.c:2132,3'
          Dst:             usbi_log
        - Src:             'io.c:2139,3'
          Dst:             usbi_log
        - Src:             'io.c:2143,3'
          Dst:             usbi_log
        - Src:             'io.c:2146,3'
          Dst:             __assert_fail
        - Src:             'io.c:2147,3'
          Dst:             list_cut
        - Src:             'io.c:2155,3'
          Dst:             __assert_fail
        - Src:             'io.c:2156,3'
          Dst:             list_cut
        - Src:             'io.c:2157,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2160,4'
          Dst:             list_del
        - Src:             'io.c:2163,5'
          Dst:             usbi_log
        - Src:             'io.c:2168,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2171,4'
          Dst:             list_splice_front
        - Src:             'io.c:2179,3'
          Dst:             usbi_clear_event
        - Src:             'io.c:2181,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2185,3'
          Dst:             usbi_hotplug_process
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 501
      functionLinenumberEnd: 503
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_set
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:502,2'
          Dst:             usbi_tls_key_set
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 1246
      functionLinenumberEnd: 1263
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1255,2'
          Dst:             usbi_get_monotonic_time
    - functionName:    usbi_handle_disconnect
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2818
      functionLinenumberEnd: 2869
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          150
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2822,2'
          Dst:             usbi_log
        - Src:             'io.c:2840,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2844,5'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2847,5'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2853,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2860,3'
          Dst:             usbi_log
        - Src:             'io.c:2864,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2866,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2867,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_handle_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1732
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          213
      EdgeCount:       37
      CyclomaticComplexity: 10
      functionsReached:
        - __assert_fail
        - libusb_free_transfer
        - libusb_lock_event_waiters
        - libusb_unlock_event_waiters
        - remove_from_flying_list
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1696,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1697,6'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1698,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1700,3'
          Dst:             usbi_log
        - Src:             'io.c:1702,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1704,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1712,4'
          Dst:             usbi_log
        - Src:             'io.c:1720,2'
          Dst:             __assert_fail
        - Src:             'io.c:1721,2'
          Dst:             usbi_log
        - Src:             'io.c:1724,3'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:1726,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:1731,3'
          Dst:             libusb_free_transfer
    - functionName:    remove_from_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1461
      functionLinenumberEnd: 1472
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - arm_timer_for_next_timeout
        - list_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1468,2'
          Dst:             list_del
        - Src:             'io.c:1470,7'
          Dst:             arm_timer_for_next_timeout
    - functionName:    libusb_lock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1988
      functionLinenumberEnd: 1991
      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:1989,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1990,2'
          Dst:             usbi_mutex_lock
    - functionName:    libusb_unlock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1999
      functionLinenumberEnd: 2002
      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:2000,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2001,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1331
      functionLinenumberEnd: 1347
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - libusb_unref_device
        - usbi_log
        - usbi_mutex_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1335,2'
          Dst:             usbi_log
        - Src:             'io.c:1340,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1342,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1345,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    libusb_free_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2805
      functionLinenumberEnd: 2811
      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: 2758
      functionLinenumberEnd: 2785
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          110
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2767,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2769,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2775,8'
          Dst:             calloc
        - Src:             'io.c:2784,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: 2671
      functionLinenumberEnd: 2680
      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:2679,3'
          Dst:             usbi_signal_event
    - functionName:    libusb_set_pollfd_notifiers
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2651
      functionLinenumberEnd: 2664
      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:2653,8'
          Dst:             usbi_get_context
    - functionName:    libusb_get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2578
      functionLinenumberEnd: 2625
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         39
      ICount:          261
      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:2583,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2584,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:2587,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2589,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2590,3'
          Dst:             usbi_log
        - Src:             'io.c:2606,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2609,3'
          Dst:             usbi_log
        - Src:             'io.c:2613,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2616,3'
          Dst:             usbi_log
        - Src:             'io.c:2621,3'
          Dst:             usbi_log
    - functionName:    libusb_pollfds_handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2543
      functionLinenumberEnd: 2545
      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:2544,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2545,9'
          Dst:             usbi_using_timer
    - functionName:    libusb_handle_events_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2496
      functionLinenumberEnd: 2512
      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:2503,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2504,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2507,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2511,9'
          Dst:             handle_events
    - functionName:    get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2305
      functionLinenumberEnd: 2322
      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:2307,10'
          Dst:             libusb_get_next_timeout
    - functionName:    handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2102
      functionLinenumberEnd: 2107
      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:2103,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2104,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2105,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2106,2'
          Dst:             usbi_mutex_unlock
    - functionName:    handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2212
      functionLinenumberEnd: 2295
      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:2218,6'
          Dst:             usbi_handling_events
        - Src:             'io.c:2224,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2226,3'
          Dst:             usbi_log
        - Src:             'io.c:2229,3'
          Dst:             cleanup_removed_event_sources
        - Src:             'io.c:2231,7'
          Dst:             usbi_alloc_event_data
        - Src:             'io.c:2233,4'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2243,4'
          Dst:             usbi_clear_event
        - Src:             'io.c:2245,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2255,2'
          Dst:             usbi_start_event_handling
        - Src:             'io.c:2257,6'
          Dst:             usbi_wait_for_events
        - Src:             'io.c:2260,4'
          Dst:             handle_timeouts
        - Src:             'io.c:2267,7'
          Dst:             handle_event_trigger
        - Src:             'io.c:2276,7'
          Dst:             handle_timer_trigger
        - Src:             'io.c:2290,3'
          Dst:             usbi_log
        - Src:             'io.c:2293,2'
          Dst:             usbi_end_event_handling
    - functionName:    cleanup_removed_event_sources
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1216
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - list_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1220,3'
          Dst:             list_del
    - functionName:    libusb_handle_events_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2468
      functionLinenumberEnd: 2472
      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:2472,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2354
      functionLinenumberEnd: 2406
      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:2361,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2362,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2365,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2370,6'
          Dst:             libusb_try_lock_events
        - Src:             'io.c:2373,4'
          Dst:             usbi_log
        - Src:             'io.c:2374,8'
          Dst:             handle_events
        - Src:             'io.c:2376,3'
          Dst:             libusb_unlock_events
        - Src:             'io.c:2382,2'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:2387,7'
          Dst:             libusb_event_handler_active
        - Src:             'io.c:2390,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2391,3'
          Dst:             usbi_log
        - Src:             'io.c:2395,2'
          Dst:             usbi_log
        - Src:             'io.c:2396,6'
          Dst:             libusb_wait_for_event
        - Src:             'io.c:2399,2'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2404,3'
          Dst:             handle_timeouts
    - functionName:    libusb_try_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1801
      functionLinenumberEnd: 1823
      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:1805,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1809,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1811,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1813,3'
          Dst:             usbi_log
        - Src:             'io.c:1817,6'
          Dst:             usbi_mutex_trylock
    - functionName:    libusb_unlock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1859
      functionLinenumberEnd: 1870
      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:1860,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1862,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1867,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1868,2'
          Dst:             usbi_cond_broadcast
        - Src:             'io.c:1869,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handler_active
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1923
      functionLinenumberEnd: 1939
      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:1926,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1930,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1932,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1934,3'
          Dst:             usbi_log
    - functionName:    libusb_wait_for_event
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2031
      functionLinenumberEnd: 2049
      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:2034,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2036,3'
          Dst:             usbi_cond_wait
        - Src:             'io.c:2043,6'
          Dst:             usbi_cond_timedwait
    - functionName:    usbi_cond_wait
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:67,2'
          Dst:             pthread_cond_wait
        - Src:             './os/threads_posix.h:67,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_broadcast
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_broadcast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:77,2'
          Dst:             pthread_cond_broadcast
        - Src:             './os/threads_posix.h:77,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_trylock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:54,22'
          Dst:             pthread_mutex_trylock
    - functionName:    pthread_mutex_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2445
      functionLinenumberEnd: 2449
      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:2449,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2426
      functionLinenumberEnd: 2427
      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:2427,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_interrupt_event_handler
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1952
      functionLinenumberEnd: 1966
      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:1955,2'
          Dst:             usbi_log
        - Src:             'io.c:1957,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1958,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1963,3'
          Dst:             usbi_signal_event
        - Src:             'io.c:1965,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handling_ok
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1894
      functionLinenumberEnd: 1910
      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:1897,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1901,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1903,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1905,3'
          Dst:             usbi_log
    - functionName:    libusb_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1844
      functionLinenumberEnd: 1848
      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:1845,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1846,2'
          Dst:             usbi_mutex_lock
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 1764
      functionLinenumberEnd: 1779
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - list_add_tail
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1771,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1774,3'
          Dst:             list_add_tail
        - Src:             'io.c:1776,4'
          Dst:             usbi_signal_event
        - Src:             'io.c:1777,3'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_handle_transfer_cancellation
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1742
      functionLinenumberEnd: 1758
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          69
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1746,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1748,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1752,3'
          Dst:             usbi_log
        - Src:             'io.c:1753,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'io.c:1757,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    libusb_transfer_get_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1672
      functionLinenumberEnd: 1676
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_transfer_set_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1660
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    add_to_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1396
      functionLinenumberEnd: 1452
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         44
      ICount:          278
      EdgeCount:       59
      CyclomaticComplexity: 17
      functionsReached:
        - calculate_timeout
        - list_add
        - list_add_tail
        - list_del
        - usbi_arm_timer
        - usbi_log
        - usbi_using_timer
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1403,2'
          Dst:             calculate_timeout
        - Src:             'io.c:1407,3'
          Dst:             list_add
        - Src:             'io.c:1413,3'
          Dst:             list_add_tail
        - Src:             'io.c:1424,4'
          Dst:             list_add_tail
        - Src:             'io.c:1432,2'
          Dst:             list_add_tail
        - Src:             'io.c:1435,15'
          Dst:             usbi_using_timer
        - Src:             'io.c:1440,3'
          Dst:             usbi_log
        - Src:             'io.c:1443,7'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1450,3'
          Dst:             list_del
    - functionName:    libusb_submit_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1490
      functionLinenumberEnd: 1571
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          187
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - add_to_flying_list
        - libusb_ref_device
        - libusb_unref_device
        - remove_from_flying_list
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1496,2'
          Dst:             __assert_fail
        - Src:             'io.c:1498,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1499,19'
          Dst:             libusb_ref_device
        - Src:             'io.c:1502,2'
          Dst:             usbi_log
        - Src:             'io.c:1536,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1537,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1539,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1540,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1546,6'
          Dst:             add_to_flying_list
        - Src:             'io.c:1548,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1549,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1556,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1562,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1565,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1566,3'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1567,3'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_alloc_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1291
      functionLinenumberEnd: 1311
      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
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1292,2'
          Dst:             __assert_fail
        - Src:             'io.c:1301,23'
          Dst:             calloc
        - Src:             'io.c:1307,2'
          Dst:             usbi_mutex_init
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_exit
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1243
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:1228,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:1229,3'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1230,3'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1233,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1234,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1235,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1236,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1237,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1238,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1239,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1240,2'
          Dst:             usbi_tls_key_delete
        - Src:             'io.c:1241,2'
          Dst:             cleanup_removed_event_sources
    - functionName:    usbi_remove_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2710
      functionLinenumberEnd: 2738
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          119
      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:2714,2'
          Dst:             usbi_log
        - Src:             'io.c:2715,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2724,3'
          Dst:             usbi_log
        - Src:             'io.c:2725,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2729,2'
          Dst:             list_del
        - Src:             'io.c:2730,2'
          Dst:             list_add_tail
        - Src:             'io.c:2731,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2732,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_cond_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:81,2'
          Dst:             pthread_cond_destroy
        - Src:             './os/threads_posix.h:81,2'
          Dst:             __assert_fail
    - functionName:    usbi_tls_key_delete
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 98
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:99,2'
          Dst:             pthread_key_delete
        - Src:             './os/threads_posix.h:99,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_add_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2686
      functionLinenumberEnd: 2706
      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:2692,2'
          Dst:             usbi_log
        - Src:             'io.c:2695,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2696,2'
          Dst:             list_add_tail
        - Src:             'io.c:2697,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2698,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_tls_key_create
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:87,2'
          Dst:             pthread_key_create
        - Src:             './os/threads_posix.h:87,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_init
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1161
      functionLinenumberEnd: 1213
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:1164,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1165,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1166,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1167,2'
          Dst:             usbi_cond_init
        - Src:             'io.c:1168,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1169,2'
          Dst:             usbi_tls_key_create
        - Src:             'io.c:1170,2'
          Dst:             list_init
        - Src:             'io.c:1171,2'
          Dst:             list_init
        - Src:             'io.c:1172,2'
          Dst:             list_init
        - Src:             'io.c:1173,2'
          Dst:             list_init
        - Src:             'io.c:1174,2'
          Dst:             list_init
        - Src:             'io.c:1176,6'
          Dst:             usbi_create_event
        - Src:             'io.c:1180,6'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1185,6'
          Dst:             usbi_create_timer
        - Src:             'io.c:1187,3'
          Dst:             usbi_log
        - Src:             'io.c:1188,7'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1192,3'
          Dst:             usbi_log
        - Src:             'io.c:1200,2'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1201,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1204,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1206,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1207,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1208,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1209,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1210,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1211,2'
          Dst:             usbi_tls_key_delete
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 49
      functionLinenumberEnd: 51
      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:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 870
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_timer_valid
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:870,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_wait_for_events
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          334
      EdgeCount:       61
      CyclomaticComplexity: 16
      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:257,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:266,14'
          Dst:             poll
        - Src:             'os/events_posix.c:267,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:269,7'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:273,7'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:275,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:275,3'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:289,6'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:304,17'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:308,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/events_posix.c:322,5'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:329,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/events_posix.c:332,3'
          Dst:             __assert_fail
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    88
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_alloc_event_data
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          147
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:236,8'
          Dst:             calloc
    - functionName:    usbi_disarm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:212,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:213,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:213,3'
          Dst:             usbi_log
    - functionName:    timerfd_settime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_arm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_settime
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:200,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:201,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:201,3'
          Dst:             usbi_log
    - functionName:    usbi_destroy_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 191
      functionLinenumberEnd: 194
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:192,6'
          Dst:             close
        - Src:             'os/events_posix.c:193,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:193,3'
          Dst:             usbi_log
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_create_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - timerfd_create
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:181,19'
          Dst:             timerfd_create
        - Src:             'os/events_posix.c:183,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:183,3'
          Dst:             usbi_log
    - functionName:    timerfd_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_clear_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - read
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:170,6'
          Dst:             read
        - Src:             'os/events_posix.c:172,3'
          Dst:             usbi_log
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_signal_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
        - write
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:156,6'
          Dst:             write
        - Src:             'os/events_posix.c:158,3'
          Dst:             usbi_log
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_destroy_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - close
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:141,6'
          Dst:             close
        - Src:             'os/events_posix.c:142,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:142,3'
          Dst:             usbi_log
    - functionName:    usbi_create_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - __errno_location
        - eventfd
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:75,19'
          Dst:             eventfd
        - Src:             'os/events_posix.c:77,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:77,3'
          Dst:             usbi_log
    - functionName:    eventfd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_tid
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_self
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:107,23'
          Dst:             syscall
        - Src:             'os/threads_posix.c:122,35'
          Dst:             pthread_self
    - functionName:    syscall
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    usbi_cond_timedwait
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      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:62,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'os/threads_posix.c:74,6'
          Dst:             pthread_cond_timedwait
    - functionName:    pthread_cond_timedwait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_init
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:46,2'
          Dst:             pthread_condattr_init
        - Src:             'os/threads_posix.c:46,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:47,2'
          Dst:             pthread_condattr_setclock
        - Src:             'os/threads_posix.c:47,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:48,2'
          Dst:             pthread_cond_init
        - Src:             'os/threads_posix.c:48,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:49,2'
          Dst:             pthread_condattr_destroy
        - Src:             'os/threads_posix.c:49,2'
          Dst:             __assert_fail
    - functionName:    pthread_condattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_setclock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_control_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2661
      functionLinenumberEnd: 2718
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         47
      ICount:          298
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2680,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2662,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2665,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2666,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2672,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2676,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2677,10'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2689,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2693,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2697,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2705,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2709,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2716,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2717,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_get_transfer_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 914
      functionLinenumberEnd: 915
      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: 45
      functionLinenumberEnd: 47
      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:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    handle_bulk_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2404
      functionLinenumberEnd: 2537
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         101
      ICount:          690
      EdgeCount:       127
      CyclomaticComplexity: 28
      functionsReached:
        - discard_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2463,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2405,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2409,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2410,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2417,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2438,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2440,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2449,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2473,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2477,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2483,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2492,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2496,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2504,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2507,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2524,2'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2527,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2533,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2535,3'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2536,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    discard_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1920
      functionLinenumberEnd: 1950
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          194
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1923,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1925,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1935,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1938,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1939,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1942,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1943,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1946,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1946,4'
          Dst:             usbi_log
    - functionName:    usbi_get_device_handle_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 910
      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:    handle_iso_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2541
      functionLinenumberEnd: 2657
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         87
      ICount:          583
      EdgeCount:       105
      CyclomaticComplexity: 20
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_handle_transfer_cancellation
        - usbi_handle_transfer_completion
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2574,3'
          Branch Sides:    []
        - Branch String:   'os/linux_usbfs.c:2630,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2544,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2550,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2558,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2559,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2563,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2582,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2586,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2590,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2599,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2603,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2614,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2617,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2618,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2620,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2621,12'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2623,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2624,12'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2637,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2641,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2648,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2649,3'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2650,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2651,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2655,2'
          Dst:             usbi_mutex_unlock
    - functionName:    free_iso_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1967
      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: 2721
      functionLinenumberEnd: 2757
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          174
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - handle_bulk_completion
        - handle_control_completion
        - handle_iso_completion
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2744,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2722,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2728,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2730,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2732,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2735,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2735,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2742,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2746,10'
          Dst:             handle_iso_completion
        - Src:             'os/linux_usbfs.c:2750,10'
          Dst:             handle_bulk_completion
        - Src:             'os/linux_usbfs.c:2752,10'
          Dst:             handle_control_completion
        - Src:             'os/linux_usbfs.c:2754,3'
          Dst:             usbi_log
    - functionName:    submit_iso_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2142
      functionLinenumberEnd: 2286
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         67
      ICount:          520
      EdgeCount:       89
      CyclomaticComplexity: 24
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - free_iso_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2145,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2147,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2169,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2184,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2186,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2206,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2208,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2234,11'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2239,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2241,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2242,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2244,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2245,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2248,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2248,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2255,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2256,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2278,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2280,3'
          Dst:             usbi_log
    - functionName:    submit_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1970
      functionLinenumberEnd: 2139
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         88
      ICount:          602
      EdgeCount:       116
      CyclomaticComplexity: 30
      functionsReached:
        - __errno_location
        - calloc
        - discard_urbs
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2048,3'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1973,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1975,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2034,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2035,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2083,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2087,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2089,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2092,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2092,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2099,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2121,24'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2131,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2133,3'
          Dst:             usbi_log
    - functionName:    submit_control_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2289
      functionLinenumberEnd: 2325
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          145
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - calloc
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2290,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2294,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2301,8'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2314,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2318,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2321,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2321,3'
          Dst:             usbi_log
    - functionName:    do_streams_ioctl
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1690
      functionLinenumberEnd: 1722
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          142
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1691,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1706,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1711,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1713,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1715,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1718,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1718,3'
          Dst:             usbi_log
    - functionName:    release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1575
      functionLinenumberEnd: 1588
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          71
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1576,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1578,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1581,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1584,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1584,3'
          Dst:             usbi_log
    - functionName:    claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1555
      functionLinenumberEnd: 1572
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          93
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1556,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1558,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1561,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1563,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1565,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1568,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1568,3'
          Dst:             usbi_log
    - functionName:    detach_kernel_driver_and_claim
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1853
      functionLinenumberEnd: 1885
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - claim_interface
        - ioctl
        - op_detach_kernel_driver
        - strcpy
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1864,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1854,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1859,2'
          Dst:             strcpy
        - Src:             'os/linux_usbfs.c:1861,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1864,10'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1874,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1874,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1880,6'
          Dst:             op_detach_kernel_driver
        - Src:             'os/linux_usbfs.c:1884,9'
          Dst:             claim_interface
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1787
      functionLinenumberEnd: 1817
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          133
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1788,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1799,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1800,17'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1803,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1805,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1807,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1809,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1812,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1812,3'
          Dst:             usbi_log
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sysfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 628
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - read_sysfs_attr
        - usbi_get_device_priv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:625,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:627,9'
          Dst:             read_sysfs_attr
    - functionName:    usbi_get_device_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          275
      EdgeCount:       56
      CyclomaticComplexity: 17
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - close
        - open_sysfs_attr
        - read
        - strtol
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:550,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:554,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:556,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:557,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:560,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:563,2'
          Dst:             close
        - Src:             'os/linux_usbfs.c:574,7'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:575,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:578,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:585,2'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:586,10'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:587,63'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:588,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:595,25'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:597,11'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:601,4'
          Dst:             usbi_log
    - functionName:    open_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 539
      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:526,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:527,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:529,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:534,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:534,3'
          Dst:             usbi_log
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    open
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    initialize_handle
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1389
      functionLinenumberEnd: 1404
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          107
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_add_event_source
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1390,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1395,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1397,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1398,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1400,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1400,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1404,9'
          Dst:             usbi_add_event_source
    - functionName:    linux_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_hotplug_poll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:206,2'
          Dst:             linux_udev_hotplug_poll
    - functionName:    is_usbdev_entry
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 257
      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:244,6'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:247,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:251,2'
          Dst:             usbi_log
    - functionName:    __isoc99_sscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 195
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_stop_event_monitor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:197,2'
          Dst:             linux_udev_stop_event_monitor
    - functionName:    linux_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 512
      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:502,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:505,8'
          Dst:             linux_udev_scan_devices
        - Src:             'os/linux_usbfs.c:510,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    linux_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_start_event_monitor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:176,9'
          Dst:             linux_udev_start_event_monitor
    - functionName:    find_usbfs_path
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 305
      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:266,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:268,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:276,3'
          Dst:             closedir
        - Src:             'os/linux_usbfs.c:284,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:286,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:290,8'
          Dst:             is_usbdev_entry
        - Src:             'os/linux_usbfs.c:296,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: 334
      functionLinenumberEnd: 351
      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: 309
      functionLinenumberEnd: 330
      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:313,6'
          Dst:             uname
        - Src:             'os/linux_usbfs.c:314,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:314,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:318,10'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:320,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:327,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: 899
      functionLinenumberEnd: 900
      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: 611
      functionLinenumberEnd: 620
      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:615,8'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:619,9'
          Dst:             linux_enumerate_device
    - functionName:    linux_get_device_address
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 634
      functionLinenumberEnd: 682
      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:638,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:647,4'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:648,8'
          Dst:             readlink
        - Src:             'os/linux_usbfs.c:659,8'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:660,4'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:667,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:669,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:674,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:679,2'
          Dst:             usbi_log
    - functionName:    linux_enumerate_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1155
      functionLinenumberEnd: 1197
      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:1164,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1166,8'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1169,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1170,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1174,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1176,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1180,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1183,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1187,6'
          Dst:             linux_get_parent_info
        - Src:             'os/linux_usbfs.c:1192,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1194,3'
          Dst:             usbi_connect_device
    - functionName:    initialize_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 955
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - char
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          444
      EdgeCount:       91
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - close
        - get_usbfs_fd
        - lseek
        - open_sysfs_attr
        - parse_config_descriptors
        - read
        - read_sysfs_attr
        - strdup
        - usbfs_get_active_config
        - usbfs_get_speed
        - usbi_get_device_priv
        - usbi_localize_device_descriptor
        - usbi_log
        - usbi_reallocf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:973,4'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:956,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:966,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:972,7'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:981,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:985,16'
          Dst:             usbfs_get_speed
        - Src:             'os/linux_usbfs.c:990,8'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:992,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:995,7'
          Dst:             lseek
        - Src:             'os/linux_usbfs.c:997,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:997,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1010,23'
          Dst:             usbi_reallocf
        - Src:             'os/linux_usbfs.c:1013,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1020,8'
          Dst:             read
        - Src:             'os/linux_usbfs.c:1022,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1022,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1024,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1031,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1034,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1038,6'
          Dst:             parse_config_descriptors
        - Src:             'os/linux_usbfs.c:1046,3'
          Dst:             usbi_localize_device_descriptor
        - Src:             'os/linux_usbfs.c:1052,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1058,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1068,6'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1070,3'
          Dst:             close
    - functionName:    linux_get_parent_info
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1151
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          289
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - asprintf
        - libusb_ref_device
        - strchr
        - strcmp
        - strdup
        - strncmp
        - strrchr
        - strtol
        - sysfs_scan_device
        - usbi_get_device_priv
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1083,21'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:1088,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:1092,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1093,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1095,22'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:1097,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1106,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1113,7'
          Dst:             strchr
        - Src:             'os/linux_usbfs.c:1115,9'
          Dst:             asprintf
        - Src:             'os/linux_usbfs.c:1123,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1125,36'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1128,9'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1129,23'
          Dst:             libusb_ref_device
        - Src:             'os/linux_usbfs.c:1134,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:1137,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1139,3'
          Dst:             sysfs_scan_device
        - Src:             'os/linux_usbfs.c:1144,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: 934
      functionLinenumberEnd: 951
      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:938,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:937,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:947,3'
          Dst:             usbi_log
    - functionName:    get_usbfs_fd
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          205
      EdgeCount:       47
      CyclomaticComplexity: 14
      functionsReached:
        - __errno_location
        - nanosleep
        - open
        - snprintf
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:194,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:197,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:200,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:205,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:212,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:215,4'
          Dst:             nanosleep
        - Src:             'os/linux_usbfs.c:217,9'
          Dst:             open
        - Src:             'os/linux_usbfs.c:220,8'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:226,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:226,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:227,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:228,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:231,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:233,6'
          Dst:             __errno_location
    - functionName:    lseek
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_reallocf
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:264,14'
          Dst:             realloc
    - functionName:    parse_config_descriptors
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 727
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         41
      ICount:          316
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - libusb_cpu_to_le16
        - seek_to_next_config
        - usbi_get_device_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:729,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:753,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:760,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:764,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:769,16'
          Dst:             libusb_cpu_to_le16
        - Src:             'os/linux_usbfs.c:771,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:785,14'
          Dst:             seek_to_next_config
        - Src:             'os/linux_usbfs.c:794,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:804,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:810,4'
          Dst:             usbi_log
    - functionName:    usbi_localize_device_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 549
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:545,17'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:546,19'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:547,20'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:548,20'
          Dst:             libusb_cpu_to_le16
    - functionName:    usbfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 931
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          130
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_get_device_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:889,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:903,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:905,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:909,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:909,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:919,7'
          Dst:             dev_has_config0
    - functionName:    dev_has_config0
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_device_priv
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:174,35'
          Dst:             usbi_get_device_priv
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      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: 687
      functionLinenumberEnd: 724
      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:698,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:707,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:712,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:722,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: 2761
      functionLinenumberEnd: 2828
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         55
      ICount:          311
      EdgeCount:       72
      CyclomaticComplexity: 19
      functionsReached:
        - linux_device_disconnected
        - reap_for_handle
        - usbi_get_device_handle_priv
        - usbi_handle_disconnect
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
        - usbi_mutex_unlock
        - usbi_remove_event_source
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:2766,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2778,12'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2784,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2793,4'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:2798,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:2800,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:2802,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:2806,10'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2810,4'
          Dst:             usbi_handle_disconnect
        - Src:             'os/linux_usbfs.c:2816,8'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2827,2'
          Dst:             usbi_mutex_unlock
    - functionName:    linux_device_disconnected
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1211
      functionLinenumberEnd: 1227
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          76
      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:1216,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1218,9'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1220,4'
          Dst:             usbi_disconnect_device
        - Src:             'os/linux_usbfs.c:1221,4'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1223,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1226,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    op_clear_transfer_priv
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2376
      functionLinenumberEnd: 2400
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          111
      EdgeCount:       22
      CyclomaticComplexity: 4
      functionsReached:
        - free_iso_urbs
        - usbi_get_transfer_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2381,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2379,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2393,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2398,3'
          Dst:             usbi_log
    - functionName:    op_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2349
      functionLinenumberEnd: 2373
      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
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2362,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2350,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2358,6'
          Dst:             discard_urbs
    - functionName:    op_submit_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2328
      functionLinenumberEnd: 2346
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          87
      EdgeCount:       14
      CyclomaticComplexity: 2
      functionsReached:
        - submit_bulk_transfer
        - submit_control_transfer
        - submit_iso_transfer
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:2332,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2334,10'
          Dst:             submit_control_transfer
        - Src:             'os/linux_usbfs.c:2337,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2339,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2341,10'
          Dst:             submit_iso_transfer
        - Src:             'os/linux_usbfs.c:2343,3'
          Dst:             usbi_log
    - functionName:    op_destroy_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1910
      functionLinenumberEnd: 1916
      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:1911,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1821
      functionLinenumberEnd: 1849
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          123
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1822,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1831,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1833,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1835,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1837,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1839,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1842,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1842,3'
          Dst:             usbi_log
    - functionName:    op_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1764
      functionLinenumberEnd: 1783
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - strcmp
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1765,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1771,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1773,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1775,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1778,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1778,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1782,9'
          Dst:             strcmp
    - functionName:    op_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1753
      functionLinenumberEnd: 1760
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - munmap
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1754,6'
          Dst:             munmap
        - Src:             'os/linux_usbfs.c:1755,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1755,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: 1739
      functionLinenumberEnd: 1749
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - mmap
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1740,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1743,11'
          Dst:             mmap
        - Src:             'os/linux_usbfs.c:1745,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1745,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: 1733
      functionLinenumberEnd: 1735
      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:1734,9'
          Dst:             do_streams_ioctl
    - functionName:    op_alloc_streams
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1726
      functionLinenumberEnd: 1728
      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:1727,9'
          Dst:             do_streams_ioctl
    - functionName:    op_reset_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1636
      functionLinenumberEnd: 1684
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         30
      ICount:          187
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - detach_kernel_driver_and_claim
        - ioctl
        - libusb_error_name
        - release_interface
        - usbi_get_device_handle_priv
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1637,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1649,4'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1652,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1653,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1655,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1660,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1660,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1674,7'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1676,4'
          Dst:             libusb_error_name
        - Src:             'os/linux_usbfs.c:1676,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1683,2'
          Dst:             usbi_mutex_unlock
    - functionName:    op_clear_halt
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1616
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          86
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1617,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1620,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1623,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1625,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1628,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1628,3'
          Dst:             usbi_log
    - functionName:    op_set_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1592
      functionLinenumberEnd: 1612
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          93
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1593,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1600,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1602,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1604,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1607,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1607,3'
          Dst:             usbi_log
    - functionName:    op_release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1896
      functionLinenumberEnd: 1907
      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:1899,6'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1904,3'
          Dst:             op_attach_kernel_driver
    - functionName:    op_claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1888
      functionLinenumberEnd: 1893
      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:1890,10'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1892,10'
          Dst:             claim_interface
    - functionName:    op_set_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1525
      functionLinenumberEnd: 1552
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          134
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - dev_has_config0
        - ioctl
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1526,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1527,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1529,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1532,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1534,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1536,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1539,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1539,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1545,23'
          Dst:             dev_has_config0
    - functionName:    op_get_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1497
      functionLinenumberEnd: 1522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          113
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - sysfs_get_active_config
        - usbfs_get_active_config
        - usbi_get_device_handle_priv
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1498,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1503,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:1505,44'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1507,7'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1515,3'
          Dst:             usbi_log
    - functionName:    op_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 824
      functionLinenumberEnd: 838
      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:825,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 873
      functionLinenumberEnd: 884
      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:874,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 842
      functionLinenumberEnd: 869
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - op_get_config_descriptor_by_value
        - sysfs_get_active_config
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:843,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:849,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:858,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:862,6'
          Dst:             op_get_config_descriptor_by_value
    - functionName:    op_close
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1485
      functionLinenumberEnd: 1493
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          67
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - usbi_get_device_handle_priv
        - usbi_remove_event_source
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1486,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1490,3'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:1492,3'
          Dst:             close
    - functionName:    op_open
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1458
      functionLinenumberEnd: 1482
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          106
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - close
        - get_usbfs_fd
        - initialize_handle
        - linux_device_disconnected
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.c:1461,7'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1466,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1468,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1469,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:1472,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:1477,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1479,3'
          Dst:             close
    - functionName:    op_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1409
      functionLinenumberEnd: 1455
      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:1410,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1417,6'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:1419,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1421,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1421,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1432,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1433,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1437,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1440,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1448,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1453,3'
          Dst:             libusb_unref_device
    - functionName:    op_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 518
      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:517,2'
          Dst:             linux_hotplug_poll
    - functionName:    op_get_device_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          175
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - open_sysfs_attr
        - read
        - usbi_get_device_priv
        - usbi_log
      functionUses:    0
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:467,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:463,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:476,7'
          Dst:             open_sysfs_attr
        - 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
    - functionName:    op_set_option
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 444
      functionLinenumberEnd: 456
      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:448,38'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:450,3'
          Dst:             usbi_log
    - functionName:    op_exit
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 441
      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:430,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:436,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:439,3'
          Dst:             linux_stop_event_monitor
    - functionName:    op_init
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 426
      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:358,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:360,6'
          Dst:             get_kernel_version
        - Src:             'os/linux_usbfs.c:363,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:364,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:370,15'
          Dst:             find_usbfs_path
        - Src:             'os/linux_usbfs.c:377,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:379,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:383,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:385,12'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:391,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:396,7'
          Dst:             statfs
        - Src:             'os/linux_usbfs.c:398,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:401,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:413,7'
          Dst:             linux_start_event_monitor
        - Src:             'os/linux_usbfs.c:416,7'
          Dst:             linux_scan_devices
        - Src:             'os/linux_usbfs.c:420,4'
          Dst:             linux_stop_event_monitor
        - Src:             'os/linux_usbfs.c:422,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: 1200
      functionLinenumberEnd: 1208
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - char
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         7
      ICount:          51
      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:1203,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1205,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_usbfs.c:1207,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    udev_hotplug_event
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 229
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:237,17'
          Dst:             udev_device_get_action
        - Src:             'os/linux_udev.c:242,15'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:244,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:249,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:251,7'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:252,4'
          Dst:             linux_hotplug_enumerate
        - Src:             'os/linux_udev.c:254,4'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_udev.c:255,14'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:258,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:262,2'
          Dst:             udev_device_unref
    - functionName:    udev_device_get_action
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_info
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      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:214,13'
          Dst:             udev_device_get_devnode
        - Src:             'os/linux_udev.c:219,14'
          Dst:             udev_device_get_sysname
        - Src:             'os/linux_udev.c:224,9'
          Dst:             linux_get_device_address
    - functionName:    udev_device_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_devnode
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_sysname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    linux_udev_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          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:312,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:314,14'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:316,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:317,4'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:320,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    udev_monitor_receive_device
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 266
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:273,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:275,15'
          Dst:             udev_enumerate_new
        - Src:             'os/linux_udev.c:277,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:281,2'
          Dst:             udev_enumerate_add_match_subsystem
        - Src:             'os/linux_udev.c:282,2'
          Dst:             udev_enumerate_add_match_property
        - Src:             'os/linux_udev.c:283,2'
          Dst:             udev_enumerate_scan_devices
        - Src:             'os/linux_udev.c:284,12'
          Dst:             udev_enumerate_get_list_entry
        - Src:             'os/linux_udev.c:288,22'
          Dst:             udev_list_entry_get_name
        - Src:             'os/linux_udev.c:291,14'
          Dst:             udev_device_new_from_syspath
        - Src:             'os/linux_udev.c:293,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:295,4'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:299,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_udev.c:300,3'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:287,2'
          Dst:             udev_list_entry_get_next
        - Src:             'os/linux_udev.c:303,2'
          Dst:             udev_enumerate_unref
    - functionName:    udev_enumerate_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_subsystem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_property
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_scan_devices
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_get_list_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_new_from_syspath
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_next
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          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:135,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:136,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:137,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:140,2'
          Dst:             usbi_signal_event
        - Src:             'os/linux_udev.c:142,6'
          Dst:             pthread_join
        - Src:             'os/linux_udev.c:144,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:146,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:150,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:155,2'
          Dst:             udev_unref
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_event_thread_main
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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:175,25'
          Dst:             pthread_self
        - Src:             'os/linux_udev.c:175,6'
          Dst:             pthread_setname_np
        - Src:             'os/linux_udev.c:177,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:180,2'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:183,7'
          Dst:             poll
        - Src:             'os/linux_udev.c:186,8'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:188,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:188,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:196,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:197,15'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:199,5'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:200,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_udev.c:204,2'
          Dst:             usbi_log
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         37
      ICount:          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:48,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:49,13'
          Dst:             udev_new
        - Src:             'os/linux_udev.c:51,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:55,17'
          Dst:             udev_monitor_new_from_netlink
        - Src:             'os/linux_udev.c:57,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:61,6'
          Dst:             udev_monitor_filter_add_match_subsystem_devtype
        - Src:             'os/linux_udev.c:63,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:67,6'
          Dst:             udev_monitor_enable_receiving
        - Src:             'os/linux_udev.c:68,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:72,20'
          Dst:             udev_monitor_get_fd
        - Src:             'os/linux_udev.c:76,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:78,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:78,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:82,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:83,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:83,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:91,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:93,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:93,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:97,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:98,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:98,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:103,6'
          Dst:             usbi_create_event
        - Src:             'os/linux_udev.c:105,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:109,6'
          Dst:             pthread_create
        - Src:             'os/linux_udev.c:109,6'
          Dst:             linux_udev_event_thread_main
        - Src:             'os/linux_udev.c:111,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:118,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:121,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:125,2'
          Dst:             udev_unref
    - functionName:    udev_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_new_from_netlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_filter_add_match_subsystem_devtype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_enable_receiving
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_get_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_str
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2869
      functionLinenumberEnd: 2908
      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:2906,3'
          Dst:             fputs
    - functionName:    fputs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:91,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_get_version
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3084
      functionLinenumberEnd: 3085
      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: 3029
      functionLinenumberEnd: 3076
      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:3030,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    log_v
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2912
      functionLinenumberEnd: 3004
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          311
      EdgeCount:       61
      CyclomaticComplexity: 14
      functionsReached:
        - get_env_debug_level
        - log_str
        - snprintf
        - strcpy
        - usbi_get_monotonic_time
        - usbi_get_tid
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2938,2'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2929,41'
          Dst:             get_env_debug_level
        - Src:             'core.c:2963,4'
          Dst:             log_str
        - Src:             'core.c:2964,4'
          Dst:             log_str
        - Src:             'core.c:2967,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2972,63'
          Dst:             usbi_get_tid
        - Src:             'core.c:2970,16'
          Dst:             snprintf
        - Src:             'core.c:2974,16'
          Dst:             snprintf
        - Src:             'core.c:2984,13'
          Dst:             vsnprintf
        - Src:             'core.c:2995,2'
          Dst:             strcpy
        - Src:             'core.c:2997,2'
          Dst:             log_str
    - functionName:    get_env_debug_level
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2543
      functionLinenumberEnd: 2551
      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:2545,20'
          Dst:             getenv
        - Src:             'core.c:2547,20'
          Dst:             strtol
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 555
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - clock_gettime
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:554,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:554,2'
          Dst:             __assert_fail
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_exit
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2737
      functionLinenumberEnd: 2800
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          177
      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:2741,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2747,4'
          Dst:             usbi_log
        - Src:             'core.c:2748,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2753,4'
          Dst:             usbi_log
        - Src:             'core.c:2754,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2758,3'
          Dst:             usbi_log
        - Src:             'core.c:2761,3'
          Dst:             usbi_log
        - Src:             'core.c:2765,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2766,2'
          Dst:             list_del
        - Src:             'core.c:2767,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2770,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2780,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2785,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2788,3'
          Dst:             usbi_log
        - Src:             'core.c:2794,3'
          Dst:             usbi_log
        - Src:             'core.c:2796,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2797,2'
          Dst:             usbi_mutex_destroy
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:32,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:32,2'
          Dst:             __assert_fail
    - functionName:    usbi_log
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3008
      functionLinenumberEnd: 3014
      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:    318
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:3012,2'
          Dst:             log_v
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 35
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:36,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:36,2'
          Dst:             __assert_fail
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 58
      functionLinenumberEnd: 60
      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:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 2584
      functionLinenumberEnd: 2729
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          437
      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:2643,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2589,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2592,3'
          Dst:             usbi_log
        - Src:             'core.c:2594,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2599,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2601,3'
          Dst:             list_init
        - Src:             'core.c:2602,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2604,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2606,9'
          Dst:             calloc
        - Src:             'core.c:2608,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2614,6'
          Dst:             getenv
        - Src:             'core.c:2615,17'
          Dst:             get_env_debug_level
        - Src:             'core.c:2622,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2623,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2624,2'
          Dst:             list_init
        - Src:             'core.c:2625,2'
          Dst:             list_init
        - Src:             'core.c:2633,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2635,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2645,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2653,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2666,3'
          Dst:             usbi_log
        - Src:             'core.c:2669,2'
          Dst:             usbi_log
        - Src:             'core.c:2672,6'
          Dst:             usbi_io_init
        - Src:             'core.c:2676,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2677,2'
          Dst:             list_add
        - Src:             'core.c:2678,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2687,2'
          Dst:             usbi_hotplug_init
        - Src:             'core.c:2698,4'
          Dst:             usbi_log
        - Src:             'core.c:2702,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2707,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2708,2'
          Dst:             list_del
        - Src:             'core.c:2709,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2711,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2712,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2721,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2722,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2726,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_option
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2454
      functionLinenumberEnd: 2534
      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:2500,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2485,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2491,5'
          Dst:             libusb_set_log_cb_internal
        - Src:             'core.c:2493,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2496,9'
          Dst:             usbi_get_context
        - Src:             'core.c:2523,4'
          Dst:             libusb_set_log_cb_internal
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 2379
      functionLinenumberEnd: 2398
      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:2387,9'
          Dst:             usbi_get_context
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    libusb_init
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2561
      functionLinenumberEnd: 2562
      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:2562,9'
          Dst:             libusb_init_context
    - functionName:    libusb_set_log_cb
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2425
      functionLinenumberEnd: 2427
      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:2426,2'
          Dst:             libusb_set_log_cb_internal
    - functionName:    libusb_set_debug
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2373
      functionLinenumberEnd: 2375
      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:2374,2'
          Dst:             libusb_set_option
    - functionName:    libusb_get_max_raw_io_transfer_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2360
      functionLinenumberEnd: 2366
      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: 2336
      functionLinenumberEnd: 2341
      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: 2284
      functionLinenumberEnd: 2295
      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:2291,2'
          Dst:             __assert_fail
        - Src:             'core.c:2292,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_auto_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2255
      functionLinenumberEnd: 2261
      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: 2216
      functionLinenumberEnd: 2229
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2217,2'
          Dst:             usbi_log
    - functionName:    libusb_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2180
      functionLinenumberEnd: 2193
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2181,2'
          Dst:             usbi_log
    - functionName:    libusb_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2142
      functionLinenumberEnd: 2155
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          90
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2143,2'
          Dst:             usbi_log
    - functionName:    libusb_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2116
      functionLinenumberEnd: 2121
      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: 2096
      functionLinenumberEnd: 2104
      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: 2053
      functionLinenumberEnd: 2067
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          91
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2054,2'
          Dst:             usbi_log
    - functionName:    libusb_alloc_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2023
      functionLinenumberEnd: 2037
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          103
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:2024,2'
          Dst:             usbi_log
    - functionName:    libusb_reset_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1989
      functionLinenumberEnd: 1998
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1990,2'
          Dst:             usbi_log
    - functionName:    libusb_clear_halt
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1961
      functionLinenumberEnd: 1967
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1962,2'
          Dst:             usbi_log
    - functionName:    libusb_set_interface_alt_setting
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1920
      functionLinenumberEnd: 1941
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          129
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1921,2'
          Dst:             usbi_log
        - Src:             'core.c:1932,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1934,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1937,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    libusb_release_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1875
      functionLinenumberEnd: 1895
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          109
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1878,2'
          Dst:             usbi_log
        - Src:             'core.c:1882,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1893,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_claim_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1831
      functionLinenumberEnd: 1852
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          124
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1834,2'
          Dst:             usbi_log
        - Src:             'core.c:1841,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1850,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_set_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1794
      functionLinenumberEnd: 1799
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1795,2'
          Dst:             usbi_log
    - functionName:    libusb_get_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1707
      functionLinenumberEnd: 1735
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         21
      ICount:          120
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - libusb_control_transfer
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1712,2'
          Dst:             usbi_log
        - Src:             'core.c:1717,3'
          Dst:             usbi_log
        - Src:             'core.c:1718,7'
          Dst:             libusb_control_transfer
        - Src:             'core.c:1723,4'
          Dst:             usbi_log
        - Src:             'core.c:1726,4'
          Dst:             usbi_log
        - Src:             'core.c:1731,3'
          Dst:             usbi_log
    - functionName:    libusb_get_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1681
      functionLinenumberEnd: 1682
      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: 1553
      functionLinenumberEnd: 1605
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          148
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - libusb_unref_device
        - list_del
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1558,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1569,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1571,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1573,4'
          Dst:             usbi_log
        - Src:             'core.c:1576,5'
          Dst:             usbi_log
        - Src:             'core.c:1578,5'
          Dst:             usbi_log
        - Src:             'core.c:1585,3'
          Dst:             list_del
        - Src:             'core.c:1592,3'
          Dst:             usbi_log
        - Src:             'core.c:1595,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1597,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1598,2'
          Dst:             list_del
        - Src:             'core.c:1599,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1602,2'
          Dst:             libusb_unref_device
        - Src:             'core.c:1603,2'
          Dst:             usbi_mutex_destroy
    - functionName:    libusb_unref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1327
      functionLinenumberEnd: 1369
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         29
      ICount:          185
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - libusb_has_capability
        - libusb_unref_device
        - list_del
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1333,7'
          Dst:             libusb_has_capability
        - Src:             'core.c:1342,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1344,3'
          Dst:             __assert_fail
        - Src:             'core.c:1346,4'
          Dst:             list_del
        - Src:             'core.c:1349,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1352,3'
          Dst:             __assert_fail
        - Src:             'core.c:1356,3'
          Dst:             usbi_log
        - Src:             'core.c:1358,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_has_capability
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2811
      functionLinenumberEnd: 2823
      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:2812,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    libusb_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1619
      functionLinenumberEnd: 1670
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          161
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - do_close
        - libusb_lock_events
        - libusb_unlock_events
        - usbi_clear_event
        - usbi_handling_events
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1627,2'
          Dst:             usbi_log
        - Src:             'core.c:1629,20'
          Dst:             usbi_handling_events
        - Src:             'core.c:1642,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1647,4'
          Dst:             usbi_signal_event
        - Src:             'core.c:1648,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1651,3'
          Dst:             libusb_lock_events
        - Src:             'core.c:1655,2'
          Dst:             do_close
        - Src:             'core.c:1660,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1664,4'
          Dst:             usbi_clear_event
        - Src:             'core.c:1665,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1668,3'
          Dst:             libusb_unlock_events
    - functionName:    libusb_open_device_with_vid_pid
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1518
      functionLinenumberEnd: 1549
      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:1526,6'
          Dst:             libusb_get_device_list
        - Src:             'core.c:1531,7'
          Dst:             libusb_get_device_descriptor
        - Src:             'core.c:1541,7'
          Dst:             libusb_open
        - Src:             'core.c:1547,2'
          Dst:             libusb_free_device_list
    - functionName:    libusb_get_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 841
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          201
      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:842,37'
          Dst:             discovered_devs_alloc
        - Src:             'core.c:847,2'
          Dst:             usbi_log
        - Src:             'core.c:852,8'
          Dst:             usbi_get_context
        - Src:             'core.c:854,6'
          Dst:             libusb_has_capability
        - Src:             'core.c:861,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:863,15'
          Dst:             discovered_devs_append
        - Src:             'core.c:870,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:883,8'
          Dst:             calloc
        - Src:             'core.c:892,12'
          Dst:             libusb_ref_device
        - Src:             'core.c:898,3'
          Dst:             discovered_devs_free
    - functionName:    libusb_open
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1497
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          128
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - libusb_ref_device
        - libusb_unref_device
        - list_add
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1469,2'
          Dst:             usbi_log
        - Src:             'core.c:1474,16'
          Dst:             calloc
        - Src:             'core.c:1478,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1480,21'
          Dst:             libusb_ref_device
        - Src:             'core.c:1484,3'
          Dst:             usbi_log
        - Src:             'core.c:1485,3'
          Dst:             libusb_unref_device
        - Src:             'core.c:1486,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1491,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1492,2'
          Dst:             list_add
        - Src:             'core.c:1493,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 911
      functionLinenumberEnd: 923
      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:920,4'
          Dst:             libusb_unref_device
    - functionName:    libusb_ref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1311
      functionLinenumberEnd: 1318
      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:1315,2'
          Dst:             __assert_fail
    - functionName:    discovered_devs_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 657
      functionLinenumberEnd: 665
      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: 682
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          98
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - discovered_devs_free
        - libusb_ref_device
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:689,28'
          Dst:             libusb_ref_device
        - Src:             'core.c:695,2'
          Dst:             usbi_log
        - Src:             'core.c:699,17'
          Dst:             realloc
        - Src:             'core.c:702,3'
          Dst:             discovered_devs_free
        - Src:             'core.c:708,27'
          Dst:             libusb_ref_device
    - functionName:    discovered_devs_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 669
      functionLinenumberEnd: 676
      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:673,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1408
      functionLinenumberEnd: 1440
      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:1413,2'
          Dst:             usbi_log
        - Src:             'core.c:1415,8'
          Dst:             usbi_get_context
        - Src:             'core.c:1420,16'
          Dst:             calloc
        - Src:             'core.c:1424,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1428,3'
          Dst:             usbi_log
        - Src:             'core.c:1429,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1434,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1435,2'
          Dst:             list_add
        - Src:             'core.c:1436,2'
          Dst:             usbi_mutex_unlock
    - functionName:    find_alt_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1128
      functionLinenumberEnd: 1150
      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: 1278
      functionLinenumberEnd: 1302
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_alt_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1283,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1285,3'
          Dst:             usbi_log
        - Src:             'core.c:1290,7'
          Dst:             find_alt_endpoint
        - Src:             'core.c:1297,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1300,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    get_endpoint_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1154
      functionLinenumberEnd: 1181
      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:1161,10'
          Dst:             libusb_get_device_speed
        - Src:             'core.c:1163,7'
          Dst:             libusb_get_ss_endpoint_companion_descriptor
        - Src:             'core.c:1166,4'
          Dst:             libusb_free_ss_endpoint_companion_descriptor
    - functionName:    libusb_get_device_speed
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1053
      functionLinenumberEnd: 1054
      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: 1219
      functionLinenumberEnd: 1242
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - get_endpoint_max_packet_size
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1224,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1226,3'
          Dst:             usbi_log
        - Src:             'core.c:1231,7'
          Dst:             find_endpoint
        - Src:             'core.c:1237,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1240,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    find_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1059
      functionLinenumberEnd: 1080
      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: 1100
      functionLinenumberEnd: 1123
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - find_endpoint
        - libusb_free_config_descriptor
        - libusb_get_active_config_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:1105,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1107,3'
          Dst:             usbi_log
        - Src:             'core.c:1112,7'
          Dst:             find_endpoint
        - Src:             'core.c:1121,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    libusb_get_device_address
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1043
      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: 1032
      functionLinenumberEnd: 1033
      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: 1013
      functionLinenumberEnd: 1016
      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:1016,9'
          Dst:             libusb_get_port_numbers
    - functionName:    libusb_get_port_numbers
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 987
      functionLinenumberEnd: 1006
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          112
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:997,4'
          Dst:             usbi_log
    - functionName:    libusb_get_port_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 970
      functionLinenumberEnd: 971
      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: 951
      functionLinenumberEnd: 952
      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: 941
      functionLinenumberEnd: 942
      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: 803
      functionLinenumberEnd: 816
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          71
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - libusb_ref_device
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:807,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:810,10'
          Dst:             libusb_ref_device
        - Src:             'core.c:814,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_sanitize_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 796
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          88
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:783,3'
          Dst:             usbi_log
        - Src:             'core.c:789,3'
          Dst:             usbi_log
        - Src:             'core.c:792,3'
          Dst:             usbi_log
    - functionName:    usbi_disconnect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 772
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_detach_device
        - usbi_hotplug_notification
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:770,2'
          Dst:             usbi_detach_device
        - Src:             'core.c:771,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_detach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_del
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:763,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:764,2'
          Dst:             list_del
        - Src:             'core.c:765,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_connect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 752
      functionLinenumberEnd: 755
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_attach_device
        - usbi_hotplug_notification
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:753,2'
          Dst:             usbi_attach_device
        - Src:             'core.c:754,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_attach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 741
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - list_add
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'core.c:746,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:747,2'
          Dst:             list_add
        - Src:             'core.c:748,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_alloc_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 718
      functionLinenumberEnd: 738
      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:720,30'
          Dst:             calloc
    - functionName:    parse_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1368
      functionLinenumberEnd: 1437
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          310
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1376,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1387,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1392,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1404,9'
          Dst:             calloc
    - functionName:    clear_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 141
      functionLinenumberEnd: 168
      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:157,6'
          Dst:             clear_endpoint
    - functionName:    parse_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          361
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:61,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:68,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:72,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:75,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:84,29'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:101,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:105,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:117,3'
          Dst:             usbi_log
    - functionName:    ReadLittleEndian16
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 172
      functionLinenumberEnd: 322
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         68
      ICount:          570
      EdgeCount:       92
      CyclomaticComplexity: 26
      functionsReached:
        - calloc
        - clear_interface
        - parse_endpoint
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:184,16'
          Dst:             realloc
        - Src:             'descriptor.c:203,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:207,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:212,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:216,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:240,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:246,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:288,15'
          Dst:             calloc
        - Src:             'descriptor.c:296,9'
          Dst:             parse_endpoint
        - Src:             'descriptor.c:320,2'
          Dst:             clear_interface
    - functionName:    parse_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 456
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         52
      ICount:          451
      EdgeCount:       70
      CyclomaticComplexity: 20
      functionsReached:
        - ReadLittleEndian16
        - calloc
        - clear_configuration
        - parse_interface
        - realloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:350,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:357,25'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:364,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:368,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:371,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:375,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:379,18'
          Dst:             calloc
        - Src:             'descriptor.c:397,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:403,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:417,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:426,21'
          Dst:             realloc
        - Src:             'descriptor.c:439,7'
          Dst:             parse_interface
        - Src:             'descriptor.c:454,2'
          Dst:             clear_configuration
    - functionName:    clear_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 339
      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:330,4'
          Dst:             clear_interface
    - functionName:    usbi_utf8_copy
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1627
      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:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1602,16'
          Dst:             strlen
        - Src:             'descriptor.c:1622,16'
          Dst:             strlen
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_device_string
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1668
      functionLinenumberEnd: 1707
      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:1706,9'
          Dst:             usbi_utf8_copy
    - functionName:    libusb_free_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1566
      functionLinenumberEnd: 1573
      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: 1530
      functionLinenumberEnd: 1553
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1539,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1543,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1548,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1550,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 482
      functionLinenumberEnd: 498
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:489,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:493,3'
          Dst:             usbi_log
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    raw_desc_to_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1441
      functionLinenumberEnd: 1458
      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:1443,5'
          Dst:             calloc
        - Src:             'descriptor.c:1449,6'
          Dst:             parse_iad_array
        - Src:             'descriptor.c:1451,3'
          Dst:             usbi_log
    - functionName:    libusb_get_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1481
      functionLinenumberEnd: 1509
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          115
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_iad_array
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1490,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:1494,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1498,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1503,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1505,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          83
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - usbi_log
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:508,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:512,3'
          Dst:             usbi_log
    - functionName:    libusb_get_string_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2245
      functionLinenumberEnd: 2248
      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:2246,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_string_descriptor_ascii
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1363
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         56
      ICount:          324
      EdgeCount:       74
      CyclomaticComplexity: 20
      functionsReached:
        - libusb_cpu_to_le16
        - libusb_get_string_descriptor
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1325,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1329,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1332,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1334,11'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1335,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1341,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1354,11'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_free_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1290
      functionLinenumberEnd: 1292
      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: 1244
      functionLinenumberEnd: 1278
      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:1248,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1253,3'
          Dst:             usbi_log
    - functionName:    libusb_free_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1222
      functionLinenumberEnd: 1224
      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: 1184
      functionLinenumberEnd: 1210
      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:1188,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1193,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1166
      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: 1147
      functionLinenumberEnd: 1149
      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: 1070
      functionLinenumberEnd: 1132
      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:1078,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1083,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1093,34'
          Dst:             ReadLittleEndian32
        - Src:             'descriptor.c:1094,43'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1095,31'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1114,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1121,19'
          Dst:             ReadLittleEndian32
    - functionName:    ReadLittleEndian32
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 990
      functionLinenumberEnd: 1019
      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:994,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:999,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1012,40'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1015,38'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_usb_2_0_extension_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 969
      functionLinenumberEnd: 971
      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: 932
      functionLinenumberEnd: 957
      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:936,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:941,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:953,37'
          Dst:             ReadLittleEndian32
    - functionName:    libusb_free_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 913
      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: 767
      functionLinenumberEnd: 840
      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:774,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:781,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:785,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:788,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:793,9'
          Dst:             calloc
        - Src:             'descriptor.c:799,23'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:807,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:813,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:817,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:819,4'
          Dst:             libusb_free_bos_descriptor
        - Src:             'descriptor.c:822,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:829,4'
          Dst:             libusb_free_bos_descriptor
    - functionName:    libusb_get_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2223
      functionLinenumberEnd: 2226
      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:2224,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 894
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          165
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - calloc
        - libusb_cpu_to_le16
        - libusb_get_descriptor
        - parse_bos
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:864,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:867,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:871,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:876,12'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:877,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:879,13'
          Dst:             calloc
        - Src:             'descriptor.c:883,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:886,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:887,7'
          Dst:             parse_bos
        - Src:             'descriptor.c:889,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_endpoint_companion_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 762
      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: 709
      functionLinenumberEnd: 748
      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:720,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:728,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:732,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:744,35'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 684
      functionLinenumberEnd: 690
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clear_configuration
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:688,2'
          Dst:             clear_configuration
    - functionName:    libusb_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          118
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - get_config_descriptor
        - libusb_get_config_descriptor
        - raw_desc_to_config
        - usbi_log
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:656,10'
          Dst:             raw_desc_to_config
        - Src:             'descriptor.c:659,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:663,7'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:668,11'
          Dst:             libusb_get_config_descriptor
    - functionName:    raw_desc_to_config
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 460
      functionLinenumberEnd: 478
      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:461,45'
          Dst:             calloc
        - Src:             'descriptor.c:467,6'
          Dst:             parse_configuration
        - Src:             'descriptor.c:469,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:473,3'
          Dst:             usbi_log
    - functionName:    libusb_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          107
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - get_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:604,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:608,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:612,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:617,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:619,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_active_config_descriptor
        - libusb_cpu_to_le16
        - raw_desc_to_config
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:563,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:567,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:572,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:574,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_device_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 538
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:534,2'
          Dst:             usbi_log
    - functionName:    libusb_hotplug_get_user_data
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          91
      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:472,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:475,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:477,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:479,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:486,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 458
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          59
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - usbi_log
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:467,4'
          Dst:             usbi_log
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:46,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:46,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 49
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:50,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:50,2'
          Dst:             __assert_fail
    - functionName:    libusb_hotplug_deregister_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 429
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          129
      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:434,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:437,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:439,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:441,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:450,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:455,3'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:459,4'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:460,3'
          Dst:             usbi_mutex_unlock
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      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: 347
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         58
      ICount:          364
      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:361,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:364,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:366,15'
          Dst:             calloc
        - Src:             'hotplug.c:386,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:395,2'
          Dst:             list_add
        - Src:             'hotplug.c:397,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:399,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:406,9'
          Dst:             libusb_get_device_list
        - Src:             'hotplug.c:408,4'
          Dst:             libusb_hotplug_deregister_callback
        - Src:             'hotplug.c:413,4'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:418,3'
          Dst:             libusb_free_device_list
    - functionName:    usbi_hotplug_match_cb
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          148
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_hotplug_process
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         25
      ICount:          211
      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:299,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:310,4'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:311,8'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:312,4'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:315,5'
          Dst:             list_del
        - Src:             'hotplug.c:323,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:325,3'
          Dst:             list_del
        - Src:             'hotplug.c:332,4'
          Dst:             usbi_log
        - Src:             'hotplug.c:334,4'
          Dst:             list_del
        - Src:             'hotplug.c:339,2'
          Dst:             usbi_mutex_unlock
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 237
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 224
      functionLinenumberEnd: 230
      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: 263
      functionLinenumberEnd: 291
      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:273,8'
          Dst:             calloc
        - Src:             'hotplug.c:275,3'
          Dst:             usbi_log
        - Src:             'hotplug.c:284,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:287,2'
          Dst:             list_add_tail
        - Src:             'hotplug.c:289,3'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:290,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:59,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:59,2'
          Dst:             __assert_fail
    - functionName:    usbi_recursively_remove_parents
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          98
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - list_del
        - usbi_recursively_remove_parents
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:175,4'
          Dst:             __assert_fail
        - Src:             'hotplug.c:177,5'
          Dst:             list_del
        - Src:             'hotplug.c:181,3'
          Dst:             usbi_recursively_remove_parents
    - functionName:    usbi_hotplug_exit
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 186
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         25
      ICount:          200
      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:192,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:200,3'
          Dst:             list_del
        - Src:             'hotplug.c:211,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:213,3'
          Dst:             list_del
        - Src:             'hotplug.c:217,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:224,4'
          Dst:             list_del
        - Src:             'hotplug.c:227,3'
          Dst:             usbi_recursively_remove_parents
        - Src:             'hotplug.c:229,3'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:231,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:233,2'
          Dst:             usbi_mutex_destroy
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      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: 41
      functionLinenumberEnd: 43
      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:42,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:42,2'
          Dst:             __assert_fail
    - functionName:    usbi_hotplug_init
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_has_capability
        - list_init
        - usbi_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'hotplug.c:155,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:158,2'
          Dst:             usbi_mutex_init
        - Src:             'hotplug.c:159,2'
          Dst:             list_init
    - functionName:    libusb_fill_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2005
      functionLinenumberEnd: 2014
      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:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      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: 90
      functionLinenumberEnd: 91
      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:91,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_interrupt_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 339
      functionLinenumberEnd: 341
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:340,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    do_sync_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          192
      EdgeCount:       37
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - libusb_alloc_transfer
        - libusb_fill_bulk_transfer
        - libusb_free_transfer
        - libusb_submit_transfer
        - sync_transfer_cb
        - sync_transfer_wait_for_completion
        - usbi_handling_events
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'sync.c:207,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:183,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:186,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:190,2'
          Dst:             libusb_fill_bulk_transfer
        - Src:             'sync.c:190,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:194,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:196,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:200,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:203,3'
          Dst:             __assert_fail
        - Src:             'sync.c:228,3'
          Dst:             usbi_log
        - Src:             'sync.c:233,2'
          Dst:             libusb_free_transfer
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 496
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_tls_key_get
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:497,9'
          Dst:             usbi_tls_key_get
    - functionName:    sync_transfer_cb
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:38,2'
          Dst:             usbi_log
    - functionName:    sync_transfer_wait_for_completion
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - libusb_cancel_transfer
        - libusb_error_name
        - libusb_handle_events_completed
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:55,7'
          Dst:             libusb_handle_events_completed
        - Src:             'sync.c:59,4'
          Dst:             libusb_error_name
        - Src:             'sync.c:59,4'
          Dst:             usbi_log
        - Src:             'sync.c:61,4'
          Dst:             libusb_cancel_transfer
    - functionName:    libusb_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - do_sync_bulk_transfer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:286,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    libusb_control_transfer_get_data
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1876
      functionLinenumberEnd: 1877
      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: 1974
      functionLinenumberEnd: 1986
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          73
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:1983,6'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_fill_control_setup
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1924
      functionLinenumberEnd: 1931
      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:1928,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1929,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1930,19'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_control_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - char
        - char
        - short
        - short
        - 'N/A'
        - short
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          231
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - libusb_alloc_transfer
        - libusb_control_transfer_get_data
        - libusb_fill_control_setup
        - libusb_fill_control_transfer
        - libusb_free_transfer
        - libusb_submit_transfer
        - sync_transfer_cb
        - sync_transfer_wait_for_completion
        - usbi_handling_events
        - usbi_log
      functionUses:    3
      BranchProfiles:
        - Branch String:   'sync.c:145,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:112,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:115,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:121,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:125,2'
          Dst:             libusb_fill_control_setup
        - Src:             'sync.c:130,2'
          Dst:             libusb_fill_control_transfer
        - Src:             'sync.c:130,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:133,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:135,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:139,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:142,16'
          Dst:             libusb_control_transfer_get_data
        - Src:             'sync.c:166,3'
          Dst:             usbi_log
        - Src:             'sync.c:171,2'
          Dst:             libusb_free_transfer
...
