---
Fuzzer filename: '/src/libusb_fuzzer.cc'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL18libusb_cpu_to_le16t
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_allocate_exception
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZNSt20bad_array_new_lengthC1Ev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZNSt20bad_array_new_lengthD1Ev
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_throw
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __gxx_personality_v0
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __clang_call_terminate
      functionSourceFile: ''
      linkageType:     WeakODRLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          3
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached:
        - __cxa_begin_catch
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_begin_catch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __cxa_end_catch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL18usbi_mutex_destroyP15pthread_mutex_t
      functionSourceFile: '/src/libusb/./libusb/os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb/os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './libusb/os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    57
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ZL25libusb_fill_control_setupPhhhttt
      functionSourceFile: '/src/libusb/./libusb/libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1943
      functionLinenumberEnd: 1950
      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:1947,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1948,18'
          Dst:             _ZL18libusb_cpu_to_le16t
        - Src:             './libusb/libusb.h:1949,19'
          Dst:             _ZL18libusb_cpu_to_le16t
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/libusb_fuzzer.cc'
      linkageType:     externalLinkage
      functionLinenumber: 23
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      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:             'libusb_fuzzer.cc:34,14'
          Dst:             libusb_alloc_transfer
        - Src:             'libusb_fuzzer.cc:39,3'
          Dst:             _ZL25libusb_fill_control_setupPhhhttt
        - Src:             'libusb_fuzzer.cc:45,3'
          Dst:             _ZL18usbi_mutex_destroyP15pthread_mutex_t
    - functionName:    list_splice_front
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 263
      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: 243
      functionLinenumberEnd: 255
      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:245,3'
          Dst:             list_init
        - Src:             './libusbi.h:254,2'
          Dst:             list_init
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_set
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_setspecific
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:98,2'
          Dst:             pthread_setspecific
        - Src:             './os/threads_posix.h:98,2'
          Dst:             __assert_fail
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,9'
          Dst:             pthread_getspecific
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_end_event_handling
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 511
      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:510,2'
          Dst:             usbi_tls_key_set
    - functionName:    handle_timer_trigger
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2194
      functionLinenumberEnd: 2207
      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:2197,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2200,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2203,6'
          Dst:             arm_timer_for_next_timeout
        - Src:             'io.c:2205,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    27
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    handle_timeouts_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2071
      functionLinenumberEnd: 2101
      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:2079,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2099,3'
          Dst:             handle_timeout
    - functionName:    arm_timer_for_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1358
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          118
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_arm_timer
        - usbi_disarm_timer
        - usbi_log
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1361,7'
          Dst:             usbi_using_timer
        - Src:             'io.c:1376,4'
          Dst:             usbi_log
        - Src:             'io.c:1378,11'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1382,2'
          Dst:             usbi_log
        - Src:             'io.c:1383,9'
          Dst:             usbi_disarm_timer
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 873
      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:873,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 558
      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:557,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:557,2'
          Dst:             __assert_fail
    - functionName:    handle_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2055
      functionLinenumberEnd: 2067
      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:2061,6'
          Dst:             libusb_cancel_transfer
        - Src:             'io.c:2065,3'
          Dst:             usbi_log
    - functionName:    libusb_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1612
      functionLinenumberEnd: 1641
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          138
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1618,2'
          Dst:             usbi_log
        - Src:             'io.c:1619,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1629,4'
          Dst:             usbi_log
        - Src:             'io.c:1631,4'
          Dst:             usbi_log
        - Src:             'io.c:1640,2'
          Dst:             usbi_mutex_unlock
    - functionName:    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: 2112
      functionLinenumberEnd: 2189
      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:2117,2'
          Dst:             usbi_log
        - Src:             'io.c:2119,2'
          Dst:             list_init
        - Src:             'io.c:2122,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2126,3'
          Dst:             usbi_log
        - Src:             'io.c:2129,3'
          Dst:             usbi_log
        - Src:             'io.c:2134,3'
          Dst:             usbi_log
        - Src:             'io.c:2141,3'
          Dst:             usbi_log
        - Src:             'io.c:2145,3'
          Dst:             usbi_log
        - Src:             'io.c:2148,3'
          Dst:             __assert_fail
        - Src:             'io.c:2149,3'
          Dst:             list_cut
        - Src:             'io.c:2157,3'
          Dst:             __assert_fail
        - Src:             'io.c:2158,3'
          Dst:             list_cut
        - Src:             'io.c:2159,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2162,4'
          Dst:             list_del
        - Src:             'io.c:2165,5'
          Dst:             usbi_log
        - Src:             'io.c:2170,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2173,4'
          Dst:             list_splice_front
        - Src:             'io.c:2181,3'
          Dst:             usbi_clear_event
        - Src:             'io.c:2183,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2187,3'
          Dst:             usbi_hotplug_process
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 240
      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: 504
      functionLinenumberEnd: 506
      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:505,2'
          Dst:             usbi_tls_key_set
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 500
      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:500,9'
          Dst:             usbi_tls_key_get
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    calculate_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1248
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          87
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1257,2'
          Dst:             usbi_get_monotonic_time
    - functionName:    usbi_handle_disconnect
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2820
      functionLinenumberEnd: 2871
      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:2824,2'
          Dst:             usbi_log
        - Src:             'io.c:2842,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2846,5'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2849,5'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2855,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2862,3'
          Dst:             usbi_log
        - Src:             'io.c:2866,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2868,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2869,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_handle_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1691
      functionLinenumberEnd: 1734
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         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:1698,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1699,6'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1700,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1702,3'
          Dst:             usbi_log
        - Src:             'io.c:1704,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1706,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1714,4'
          Dst:             usbi_log
        - Src:             'io.c:1722,2'
          Dst:             __assert_fail
        - Src:             'io.c:1723,2'
          Dst:             usbi_log
        - Src:             'io.c:1726,3'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:1728,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:1733,3'
          Dst:             libusb_free_transfer
    - functionName:    remove_from_flying_list
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1463
      functionLinenumberEnd: 1474
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          95
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - arm_timer_for_next_timeout
        - list_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1470,2'
          Dst:             list_del
        - Src:             'io.c:1472,7'
          Dst:             arm_timer_for_next_timeout
    - functionName:    libusb_lock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1990
      functionLinenumberEnd: 1993
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1991,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1992,2'
          Dst:             usbi_mutex_lock
    - functionName:    libusb_unlock_event_waiters
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2001
      functionLinenumberEnd: 2004
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_unlock
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2002,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2003,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1333
      functionLinenumberEnd: 1349
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         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:1337,2'
          Dst:             usbi_log
        - Src:             'io.c:1342,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1344,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1347,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 474
      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:470,4'
          Dst:             usbi_log
    - functionName:    libusb_free_pollfds
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2807
      functionLinenumberEnd: 2813
      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: 2760
      functionLinenumberEnd: 2787
      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:2769,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2771,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2777,33'
          Dst:             calloc
        - Src:             'io.c:2786,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: 2673
      functionLinenumberEnd: 2682
      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:2681,3'
          Dst:             usbi_signal_event
    - functionName:    libusb_set_pollfd_notifiers
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2653
      functionLinenumberEnd: 2666
      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:2655,8'
          Dst:             usbi_get_context
    - functionName:    libusb_get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2580
      functionLinenumberEnd: 2627
      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:2585,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2586,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:2589,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2591,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2592,3'
          Dst:             usbi_log
        - Src:             'io.c:2608,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2611,3'
          Dst:             usbi_log
        - Src:             'io.c:2615,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'io.c:2618,3'
          Dst:             usbi_log
        - Src:             'io.c:2623,3'
          Dst:             usbi_log
    - functionName:    libusb_pollfds_handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2545
      functionLinenumberEnd: 2547
      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:2546,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2547,9'
          Dst:             usbi_using_timer
    - functionName:    libusb_handle_events_locked
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2498
      functionLinenumberEnd: 2514
      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:2505,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2506,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2509,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2513,9'
          Dst:             handle_events
    - functionName:    get_next_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2307
      functionLinenumberEnd: 2324
      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:2309,10'
          Dst:             libusb_get_next_timeout
    - functionName:    handle_timeouts
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2104
      functionLinenumberEnd: 2109
      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:2105,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2106,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2107,2'
          Dst:             handle_timeouts_locked
        - Src:             'io.c:2108,2'
          Dst:             usbi_mutex_unlock
    - functionName:    handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2214
      functionLinenumberEnd: 2297
      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:2220,6'
          Dst:             usbi_handling_events
        - Src:             'io.c:2226,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2228,3'
          Dst:             usbi_log
        - Src:             'io.c:2231,3'
          Dst:             cleanup_removed_event_sources
        - Src:             'io.c:2233,7'
          Dst:             usbi_alloc_event_data
        - Src:             'io.c:2235,4'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2245,4'
          Dst:             usbi_clear_event
        - Src:             'io.c:2247,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2257,2'
          Dst:             usbi_start_event_handling
        - Src:             'io.c:2259,6'
          Dst:             usbi_wait_for_events
        - Src:             'io.c:2262,4'
          Dst:             handle_timeouts
        - Src:             'io.c:2269,7'
          Dst:             handle_event_trigger
        - Src:             'io.c:2278,7'
          Dst:             handle_timer_trigger
        - Src:             'io.c:2292,3'
          Dst:             usbi_log
        - Src:             'io.c:2295,2'
          Dst:             usbi_end_event_handling
    - functionName:    cleanup_removed_event_sources
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1218
      functionLinenumberEnd: 1225
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         7
      ICount:          61
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - list_del
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1222,3'
          Dst:             list_del
    - functionName:    libusb_handle_events_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2470
      functionLinenumberEnd: 2474
      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:2474,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout_completed
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2356
      functionLinenumberEnd: 2408
      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:2363,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2364,6'
          Dst:             get_next_timeout
        - Src:             'io.c:2367,3'
          Dst:             handle_timeouts
        - Src:             'io.c:2372,6'
          Dst:             libusb_try_lock_events
        - Src:             'io.c:2375,4'
          Dst:             usbi_log
        - Src:             'io.c:2376,8'
          Dst:             handle_events
        - Src:             'io.c:2378,3'
          Dst:             libusb_unlock_events
        - Src:             'io.c:2384,2'
          Dst:             libusb_lock_event_waiters
        - Src:             'io.c:2389,7'
          Dst:             libusb_event_handler_active
        - Src:             'io.c:2392,3'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2393,3'
          Dst:             usbi_log
        - Src:             'io.c:2397,2'
          Dst:             usbi_log
        - Src:             'io.c:2398,6'
          Dst:             libusb_wait_for_event
        - Src:             'io.c:2401,2'
          Dst:             libusb_unlock_event_waiters
        - Src:             'io.c:2406,3'
          Dst:             handle_timeouts
    - functionName:    libusb_try_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1803
      functionLinenumberEnd: 1825
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_trylock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1807,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1811,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1813,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1815,3'
          Dst:             usbi_log
        - Src:             'io.c:1819,6'
          Dst:             usbi_mutex_trylock
    - functionName:    libusb_unlock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1861
      functionLinenumberEnd: 1872
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_cond_broadcast
        - usbi_get_context
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1862,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1864,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1869,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1870,2'
          Dst:             usbi_cond_broadcast
        - Src:             'io.c:1871,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handler_active
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1925
      functionLinenumberEnd: 1941
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1928,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1932,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1934,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1936,3'
          Dst:             usbi_log
    - functionName:    libusb_wait_for_event
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2033
      functionLinenumberEnd: 2051
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          91
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - usbi_cond_timedwait
        - usbi_cond_wait
        - usbi_get_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:2036,8'
          Dst:             usbi_get_context
        - Src:             'io.c:2038,3'
          Dst:             usbi_cond_wait
        - Src:             'io.c:2045,6'
          Dst:             usbi_cond_timedwait
    - functionName:    usbi_cond_wait
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_wait
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:70,2'
          Dst:             pthread_cond_wait
        - Src:             './os/threads_posix.h:70,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_broadcast
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_broadcast
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:80,2'
          Dst:             pthread_cond_broadcast
        - Src:             './os/threads_posix.h:80,2'
          Dst:             __assert_fail
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_trylock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_trylock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:57,22'
          Dst:             pthread_mutex_trylock
    - functionName:    pthread_mutex_trylock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_handle_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2447
      functionLinenumberEnd: 2451
      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:2451,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_handle_events_timeout
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2428
      functionLinenumberEnd: 2429
      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:2429,9'
          Dst:             libusb_handle_events_timeout_completed
    - functionName:    libusb_interrupt_event_handler
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1954
      functionLinenumberEnd: 1968
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
        - usbi_signal_event
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1957,2'
          Dst:             usbi_log
        - Src:             'io.c:1959,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1960,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1965,3'
          Dst:             usbi_signal_event
        - Src:             'io.c:1967,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_event_handling_ok
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1896
      functionLinenumberEnd: 1912
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_get_context
        - usbi_log
        - usbi_mutex_lock
        - usbi_mutex_unlock
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1899,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1903,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1905,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1907,3'
          Dst:             usbi_log
    - functionName:    libusb_lock_events
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1846
      functionLinenumberEnd: 1850
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usbi_get_context
        - usbi_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1847,8'
          Dst:             usbi_get_context
        - Src:             'io.c:1848,2'
          Dst:             usbi_mutex_lock
    - functionName:    list_add_tail
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 227
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_signal_transfer_completion
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1781
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          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:1773,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1776,3'
          Dst:             list_add_tail
        - Src:             'io.c:1778,4'
          Dst:             usbi_signal_event
        - Src:             'io.c:1779,3'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_handle_transfer_cancellation
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1744
      functionLinenumberEnd: 1760
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         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:1748,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1750,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1754,3'
          Dst:             usbi_log
        - Src:             'io.c:1755,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'io.c:1759,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    libusb_transfer_get_stream_id
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1674
      functionLinenumberEnd: 1678
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         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: 1657
      functionLinenumberEnd: 1662
      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: 1398
      functionLinenumberEnd: 1454
      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:1405,2'
          Dst:             calculate_timeout
        - Src:             'io.c:1409,3'
          Dst:             list_add
        - Src:             'io.c:1415,3'
          Dst:             list_add_tail
        - Src:             'io.c:1426,4'
          Dst:             list_add_tail
        - Src:             'io.c:1434,2'
          Dst:             list_add_tail
        - Src:             'io.c:1437,15'
          Dst:             usbi_using_timer
        - Src:             'io.c:1442,3'
          Dst:             usbi_log
        - Src:             'io.c:1445,7'
          Dst:             usbi_arm_timer
        - Src:             'io.c:1452,3'
          Dst:             list_del
    - functionName:    libusb_submit_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1492
      functionLinenumberEnd: 1573
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         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:1498,2'
          Dst:             __assert_fail
        - Src:             'io.c:1500,3'
          Dst:             libusb_unref_device
        - Src:             'io.c:1501,19'
          Dst:             libusb_ref_device
        - Src:             'io.c:1504,2'
          Dst:             usbi_log
        - Src:             'io.c:1538,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1539,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1541,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1542,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1548,6'
          Dst:             add_to_flying_list
        - Src:             'io.c:1550,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1551,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1558,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1564,2'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:1567,3'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:1568,3'
          Dst:             remove_from_flying_list
        - Src:             'io.c:1569,3'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_alloc_transfer
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1313
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          91
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - calloc
        - usbi_mutex_init
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1294,2'
          Dst:             __assert_fail
        - Src:             'io.c:1303,40'
          Dst:             calloc
        - Src:             'io.c:1309,2'
          Dst:             usbi_mutex_init
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,2'
          Dst:             __assert_fail
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_exit
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1228
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          69
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - cleanup_removed_event_sources
        - usbi_cond_destroy
        - usbi_destroy_event
        - usbi_destroy_timer
        - usbi_mutex_destroy
        - usbi_remove_event_source
        - usbi_tls_key_delete
        - usbi_using_timer
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1230,6'
          Dst:             usbi_using_timer
        - Src:             'io.c:1231,3'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1232,3'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1235,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1236,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1237,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1238,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1239,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1240,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1241,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1242,2'
          Dst:             usbi_tls_key_delete
        - Src:             'io.c:1243,2'
          Dst:             cleanup_removed_event_sources
    - functionName:    usbi_remove_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2712
      functionLinenumberEnd: 2740
      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:2716,2'
          Dst:             usbi_log
        - Src:             'io.c:2717,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2726,3'
          Dst:             usbi_log
        - Src:             'io.c:2727,3'
          Dst:             usbi_mutex_unlock
        - Src:             'io.c:2731,2'
          Dst:             list_del
        - Src:             'io.c:2732,2'
          Dst:             list_add_tail
        - Src:             'io.c:2733,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2734,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_cond_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_destroy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:84,2'
          Dst:             pthread_cond_destroy
        - Src:             './os/threads_posix.h:84,2'
          Dst:             __assert_fail
    - functionName:    usbi_tls_key_delete
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_delete
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:102,2'
          Dst:             pthread_key_delete
        - Src:             './os/threads_posix.h:102,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_add_event_source
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2688
      functionLinenumberEnd: 2708
      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:2694,2'
          Dst:             usbi_log
        - Src:             'io.c:2697,2'
          Dst:             usbi_mutex_lock
        - Src:             'io.c:2698,2'
          Dst:             list_add_tail
        - Src:             'io.c:2699,2'
          Dst:             usbi_event_source_notification
        - Src:             'io.c:2700,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_tls_key_create
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_key_create
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:90,2'
          Dst:             pthread_key_create
        - Src:             './os/threads_posix.h:90,2'
          Dst:             __assert_fail
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_io_init
      functionSourceFile: '/src/libusb/libusb/io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1163
      functionLinenumberEnd: 1215
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          149
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - list_init
        - usbi_add_event_source
        - usbi_cond_destroy
        - usbi_cond_init
        - usbi_create_event
        - usbi_create_timer
        - usbi_destroy_event
        - usbi_destroy_timer
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_remove_event_source
        - usbi_tls_key_create
        - usbi_tls_key_delete
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'io.c:1166,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1167,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1168,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1169,2'
          Dst:             usbi_cond_init
        - Src:             'io.c:1170,2'
          Dst:             usbi_mutex_init
        - Src:             'io.c:1171,2'
          Dst:             usbi_tls_key_create
        - Src:             'io.c:1172,2'
          Dst:             list_init
        - Src:             'io.c:1173,2'
          Dst:             list_init
        - Src:             'io.c:1174,2'
          Dst:             list_init
        - Src:             'io.c:1175,2'
          Dst:             list_init
        - Src:             'io.c:1176,2'
          Dst:             list_init
        - Src:             'io.c:1178,6'
          Dst:             usbi_create_event
        - Src:             'io.c:1182,6'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1187,6'
          Dst:             usbi_create_timer
        - Src:             'io.c:1189,3'
          Dst:             usbi_log
        - Src:             'io.c:1190,7'
          Dst:             usbi_add_event_source
        - Src:             'io.c:1194,3'
          Dst:             usbi_log
        - Src:             'io.c:1202,2'
          Dst:             usbi_destroy_timer
        - Src:             'io.c:1203,2'
          Dst:             usbi_remove_event_source
        - Src:             'io.c:1206,2'
          Dst:             usbi_destroy_event
        - Src:             'io.c:1208,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1209,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1210,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1211,2'
          Dst:             usbi_cond_destroy
        - Src:             'io.c:1212,2'
          Dst:             usbi_mutex_destroy
        - Src:             'io.c:1213,2'
          Dst:             usbi_tls_key_delete
    - functionName:    usbi_timer_valid
      functionSourceFile: '/src/libusb/libusb/./os/events_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_using_timer
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 871
      functionLinenumberEnd: 873
      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:873,9'
          Dst:             usbi_timer_valid
    - functionName:    usbi_wait_for_events
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 258
      functionLinenumberEnd: 346
      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:263,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:272,14'
          Dst:             poll
        - Src:             'os/events_posix.c:273,2'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:275,7'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:279,7'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:281,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:281,3'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:295,6'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:310,17'
          Dst:             usbi_using_timer
        - Src:             'os/events_posix.c:314,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/events_posix.c:328,5'
          Dst:             usbi_log
        - Src:             'os/events_posix.c:335,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/events_posix.c:338,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: 225
      functionLinenumberEnd: 254
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         16
      ICount:          145
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/events_posix.c:239,40'
          Dst:             calloc
    - functionName:    usbi_disarm_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 221
      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:215,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:216,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:216,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: 200
      functionLinenumberEnd: 209
      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:203,6'
          Dst:             timerfd_settime
        - Src:             'os/events_posix.c:204,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:204,3'
          Dst:             usbi_log
    - functionName:    usbi_destroy_timer
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 197
      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:195,6'
          Dst:             close
        - Src:             'os/events_posix.c:196,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:196,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: 183
      functionLinenumberEnd: 191
      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:184,19'
          Dst:             timerfd_create
        - Src:             'os/events_posix.c:186,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:186,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: 169
      functionLinenumberEnd: 179
      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:173,6'
          Dst:             read
        - Src:             'os/events_posix.c:175,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: 155
      functionLinenumberEnd: 166
      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:159,6'
          Dst:             write
        - Src:             'os/events_posix.c:161,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: 142
      functionLinenumberEnd: 152
      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:144,6'
          Dst:             close
        - Src:             'os/events_posix.c:145,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:145,3'
          Dst:             usbi_log
    - functionName:    usbi_create_event
      functionSourceFile: '/src/libusb/libusb/os/events_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 139
      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:78,19'
          Dst:             eventfd
        - Src:             'os/events_posix.c:80,3'
          Dst:             __errno_location
        - Src:             'os/events_posix.c:80,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: 87
      functionLinenumberEnd: 129
      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:110,23'
          Dst:             syscall
        - Src:             'os/threads_posix.c:125,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: 556
      functionLinenumberEnd: 558
      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:557,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:557,2'
          Dst:             __assert_fail
    - functionName:    usbi_cond_timedwait
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          85
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - pthread_cond_timedwait
        - usbi_get_monotonic_time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:65,2'
          Dst:             usbi_get_monotonic_time
        - Src:             'os/threads_posix.c:77,6'
          Dst:             pthread_cond_timedwait
    - functionName:    pthread_cond_timedwait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_cond_init
      functionSourceFile: '/src/libusb/libusb/os/threads_posix.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_init
        - pthread_condattr_destroy
        - pthread_condattr_init
        - pthread_condattr_setclock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/threads_posix.c:49,2'
          Dst:             pthread_condattr_init
        - Src:             'os/threads_posix.c:49,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:50,2'
          Dst:             pthread_condattr_setclock
        - Src:             'os/threads_posix.c:50,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:51,2'
          Dst:             pthread_cond_init
        - Src:             'os/threads_posix.c:51,2'
          Dst:             __assert_fail
        - Src:             'os/threads_posix.c:52,2'
          Dst:             pthread_condattr_destroy
        - Src:             'os/threads_posix.c:52,2'
          Dst:             __assert_fail
    - functionName:    pthread_condattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_setclock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_condattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_control_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2663
      functionLinenumberEnd: 2720
      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:2682,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2664,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2667,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2668,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2674,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2678,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2679,10'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2691,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2695,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2699,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2707,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2711,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2718,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2719,9'
          Dst:             usbi_handle_transfer_completion
    - functionName:    usbi_get_transfer_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 917
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    handle_bulk_completion
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2406
      functionLinenumberEnd: 2539
      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:2465,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2407,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2411,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2412,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2419,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2440,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2442,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2451,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2475,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2479,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2485,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2494,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2498,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2506,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2509,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2526,2'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2529,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2535,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2537,3'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2538,3'
          Dst:             usbi_handle_transfer_completion
    - functionName:    discard_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1922
      functionLinenumberEnd: 1952
      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:1925,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1927,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1937,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1940,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1941,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1944,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1945,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1948,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1948,4'
          Dst:             usbi_log
    - functionName:    usbi_get_device_handle_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 913
      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: 2543
      functionLinenumberEnd: 2659
      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:2576,3'
          Branch Sides:    []
        - Branch String:   'os/linux_usbfs.c:2632,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2546,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2552,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2560,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2561,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2565,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2584,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2588,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2592,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2601,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2605,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2616,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2619,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2620,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2622,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2623,12'
          Dst:             usbi_handle_transfer_cancellation
        - Src:             'os/linux_usbfs.c:2625,5'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2626,12'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2639,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2643,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2650,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2651,3'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2652,3'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:2653,10'
          Dst:             usbi_handle_transfer_completion
        - Src:             'os/linux_usbfs.c:2657,2'
          Dst:             usbi_mutex_unlock
    - functionName:    free_iso_urbs
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1956
      functionLinenumberEnd: 1969
      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: 2723
      functionLinenumberEnd: 2759
      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:2746,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2724,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2730,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2732,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2734,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2737,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2737,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2744,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2748,10'
          Dst:             handle_iso_completion
        - Src:             'os/linux_usbfs.c:2752,10'
          Dst:             handle_bulk_completion
        - Src:             'os/linux_usbfs.c:2754,10'
          Dst:             handle_control_completion
        - Src:             'os/linux_usbfs.c:2756,3'
          Dst:             usbi_log
    - functionName:    submit_iso_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2144
      functionLinenumberEnd: 2288
      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:2147,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2149,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2171,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2186,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2188,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2208,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2210,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2236,11'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2241,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2243,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2244,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2246,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2247,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2250,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2250,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2257,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2258,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2280,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2282,3'
          Dst:             usbi_log
    - functionName:    submit_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1972
      functionLinenumberEnd: 2141
      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:2050,3'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1975,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:1977,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2036,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2037,9'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2085,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2089,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2091,14'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2094,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2094,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2101,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2123,24'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2133,3'
          Dst:             discard_urbs
        - Src:             'os/linux_usbfs.c:2135,3'
          Dst:             usbi_log
    - functionName:    submit_control_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2291
      functionLinenumberEnd: 2327
      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:2292,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2296,3'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2303,8'
          Dst:             calloc
        - Src:             'os/linux_usbfs.c:2316,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:2320,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2323,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:2323,3'
          Dst:             usbi_log
    - functionName:    do_streams_ioctl
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1692
      functionLinenumberEnd: 1724
      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:1693,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1708,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1713,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1715,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1717,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1720,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1720,3'
          Dst:             usbi_log
    - functionName:    release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1577
      functionLinenumberEnd: 1590
      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:1578,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1580,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1583,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1586,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1586,3'
          Dst:             usbi_log
    - functionName:    claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1557
      functionLinenumberEnd: 1574
      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:1558,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1560,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1563,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1565,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1567,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1570,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1570,3'
          Dst:             usbi_log
    - functionName:    detach_kernel_driver_and_claim
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1855
      functionLinenumberEnd: 1887
      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
        - snprintf
        - usbi_get_device_handle_priv
        - usbi_log
      functionUses:    2
      BranchProfiles:
        - Branch String:   'os/linux_usbfs.c:1866,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:1856,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1861,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:1863,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1866,10'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1876,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1876,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1882,6'
          Dst:             op_detach_kernel_driver
        - Src:             'os/linux_usbfs.c:1886,9'
          Dst:             claim_interface
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    op_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1789
      functionLinenumberEnd: 1819
      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:1790,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1801,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1802,17'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1805,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1807,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1809,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1811,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1814,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1814,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: 626
      functionLinenumberEnd: 630
      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:627,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:629,9'
          Dst:             read_sysfs_attr
    - functionName:    usbi_get_device_priv
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 907
      functionLinenumberEnd: 908
      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: 546
      functionLinenumberEnd: 610
      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:552,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:556,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:558,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:559,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:562,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:565,2'
          Dst:             close
        - Src:             'os/linux_usbfs.c:576,7'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:577,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:580,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:587,2'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:588,10'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:589,63'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:590,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:597,25'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:599,11'
          Dst:             __ctype_b_loc
        - Src:             'os/linux_usbfs.c:603,4'
          Dst:             usbi_log
    - functionName:    open_sysfs_attr
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 524
      functionLinenumberEnd: 541
      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:528,2'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:529,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:531,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:536,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:536,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:    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: 1391
      functionLinenumberEnd: 1406
      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:1392,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1397,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1399,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1400,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1402,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1402,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1406,9'
          Dst:             usbi_add_event_source
    - functionName:    linux_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_hotplug_poll
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:209,2'
          Dst:             linux_udev_hotplug_poll
    - functionName:    is_usbdev_entry
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 259
      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:246,6'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:249,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:253,2'
          Dst:             usbi_log
    - functionName:    __isoc99_sscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_stop_event_monitor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:200,2'
          Dst:             linux_udev_stop_event_monitor
    - functionName:    linux_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 514
      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:504,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:507,8'
          Dst:             linux_udev_scan_devices
        - Src:             'os/linux_usbfs.c:512,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    linux_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.h'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - linux_udev_start_event_monitor
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_usbfs.h:179,9'
          Dst:             linux_udev_start_event_monitor
    - functionName:    find_usbfs_path
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 307
      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:268,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:270,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:278,3'
          Dst:             closedir
        - Src:             'os/linux_usbfs.c:286,8'
          Dst:             opendir
        - Src:             'os/linux_usbfs.c:288,19'
          Dst:             readdir
        - Src:             'os/linux_usbfs.c:292,8'
          Dst:             is_usbdev_entry
        - Src:             'os/linux_usbfs.c:298,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: 336
      functionLinenumberEnd: 353
      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: 311
      functionLinenumberEnd: 332
      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:315,6'
          Dst:             uname
        - Src:             'os/linux_usbfs.c:316,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:316,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:320,10'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:322,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:329,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: 902
      functionLinenumberEnd: 903
      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: 613
      functionLinenumberEnd: 622
      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:617,8'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:621,9'
          Dst:             linux_enumerate_device
    - functionName:    linux_get_device_address
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 684
      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:640,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:649,4'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:650,8'
          Dst:             readlink
        - Src:             'os/linux_usbfs.c:661,8'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:662,4'
          Dst:             __isoc99_sscanf
        - Src:             'os/linux_usbfs.c:669,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:671,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:676,6'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:681,2'
          Dst:             usbi_log
    - functionName:    linux_enumerate_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1157
      functionLinenumberEnd: 1199
      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:1166,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1168,8'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1171,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1172,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1176,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1178,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1182,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1185,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1189,6'
          Dst:             linux_get_parent_info
        - Src:             'os/linux_usbfs.c:1194,3'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1196,3'
          Dst:             usbi_connect_device
    - functionName:    initialize_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 1075
      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:975,4'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:958,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:968,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:974,7'
          Dst:             read_sysfs_attr
        - Src:             'os/linux_usbfs.c:983,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:987,16'
          Dst:             usbfs_get_speed
        - Src:             'os/linux_usbfs.c:992,8'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:994,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:997,7'
          Dst:             lseek
        - Src:             'os/linux_usbfs.c:999,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:999,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1012,23'
          Dst:             usbi_reallocf
        - Src:             'os/linux_usbfs.c:1015,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1022,8'
          Dst:             read
        - Src:             'os/linux_usbfs.c:1024,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1024,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1026,5'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1033,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:1036,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1040,6'
          Dst:             parse_config_descriptors
        - Src:             'os/linux_usbfs.c:1048,3'
          Dst:             usbi_localize_device_descriptor
        - Src:             'os/linux_usbfs.c:1054,8'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1060,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1070,6'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1072,3'
          Dst:             close
    - functionName:    linux_get_parent_info
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1078
      functionLinenumberEnd: 1153
      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:1085,21'
          Dst:             strncmp
        - Src:             'os/linux_usbfs.c:1090,21'
          Dst:             strdup
        - Src:             'os/linux_usbfs.c:1094,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1095,13'
          Dst:             strrchr
        - Src:             'os/linux_usbfs.c:1097,22'
          Dst:             strtol
        - Src:             'os/linux_usbfs.c:1099,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1108,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1115,7'
          Dst:             strchr
        - Src:             'os/linux_usbfs.c:1117,9'
          Dst:             asprintf
        - Src:             'os/linux_usbfs.c:1125,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1127,36'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1130,9'
          Dst:             strcmp
        - Src:             'os/linux_usbfs.c:1131,23'
          Dst:             libusb_ref_device
        - Src:             'os/linux_usbfs.c:1136,2'
          Dst:             usbi_mutex_unlock
        - Src:             'os/linux_usbfs.c:1139,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1141,3'
          Dst:             sysfs_scan_device
        - Src:             'os/linux_usbfs.c:1146,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: 936
      functionLinenumberEnd: 953
      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:940,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:939,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:949,3'
          Dst:             usbi_log
    - functionName:    get_usbfs_fd
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 238
      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:196,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:199,3'
          Dst:             snprintf
        - Src:             'os/linux_usbfs.c:202,7'
          Dst:             open
        - Src:             'os/linux_usbfs.c:207,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:214,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:217,4'
          Dst:             nanosleep
        - Src:             'os/linux_usbfs.c:219,9'
          Dst:             open
        - Src:             'os/linux_usbfs.c:222,8'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:228,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:228,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:229,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:230,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:233,6'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:235,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: 266
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - realloc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusbi.h:267,14'
          Dst:             realloc
    - functionName:    parse_config_descriptors
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 729
      functionLinenumberEnd: 822
      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:731,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:755,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:762,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:766,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:771,16'
          Dst:             libusb_cpu_to_le16
        - Src:             'os/linux_usbfs.c:773,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:787,14'
          Dst:             seek_to_next_config
        - Src:             'os/linux_usbfs.c:796,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:806,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:812,4'
          Dst:             usbi_log
    - functionName:    usbi_localize_device_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 547
      functionLinenumberEnd: 552
      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:548,17'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:549,19'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:550,20'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusbi.h:551,20'
          Dst:             libusb_cpu_to_le16
    - functionName:    usbfs_get_active_config
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 890
      functionLinenumberEnd: 933
      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:891,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:905,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:907,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:911,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:911,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:921,7'
          Dst:             dev_has_config0
    - functionName:    dev_has_config0
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 187
      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:176,35'
          Dst:             usbi_get_device_priv
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 205
      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: 689
      functionLinenumberEnd: 726
      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:700,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:709,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:714,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:724,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: 2763
      functionLinenumberEnd: 2830
      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:2768,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:2780,12'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:2786,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:2795,4'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:2800,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:2802,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:2804,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:2808,10'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2812,4'
          Dst:             usbi_handle_disconnect
        - Src:             'os/linux_usbfs.c:2818,8'
          Dst:             reap_for_handle
        - Src:             'os/linux_usbfs.c:2829,2'
          Dst:             usbi_mutex_unlock
    - functionName:    linux_device_disconnected
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1213
      functionLinenumberEnd: 1229
      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:1218,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1220,9'
          Dst:             usbi_get_device_by_session_id
        - Src:             'os/linux_usbfs.c:1222,4'
          Dst:             usbi_disconnect_device
        - Src:             'os/linux_usbfs.c:1223,4'
          Dst:             libusb_unref_device
        - Src:             'os/linux_usbfs.c:1225,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1228,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    op_clear_transfer_priv
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2378
      functionLinenumberEnd: 2402
      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:2383,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2381,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2395,4'
          Dst:             free_iso_urbs
        - Src:             'os/linux_usbfs.c:2400,3'
          Dst:             usbi_log
    - functionName:    op_cancel_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2351
      functionLinenumberEnd: 2375
      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:2364,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2352,38'
          Dst:             usbi_get_transfer_priv
        - Src:             'os/linux_usbfs.c:2360,6'
          Dst:             discard_urbs
    - functionName:    op_submit_transfer
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2330
      functionLinenumberEnd: 2348
      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:2334,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:2336,10'
          Dst:             submit_control_transfer
        - Src:             'os/linux_usbfs.c:2339,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2341,10'
          Dst:             submit_bulk_transfer
        - Src:             'os/linux_usbfs.c:2343,10'
          Dst:             submit_iso_transfer
        - Src:             'os/linux_usbfs.c:2345,3'
          Dst:             usbi_log
    - functionName:    op_destroy_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1912
      functionLinenumberEnd: 1918
      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:1913,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_attach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1823
      functionLinenumberEnd: 1851
      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:1824,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1833,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1835,7'
          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:1841,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1844,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1844,3'
          Dst:             usbi_log
    - functionName:    op_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1766
      functionLinenumberEnd: 1785
      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:1767,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1773,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1775,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1777,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1780,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1780,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1784,9'
          Dst:             strcmp
    - functionName:    op_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1755
      functionLinenumberEnd: 1762
      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:1756,6'
          Dst:             munmap
        - Src:             'os/linux_usbfs.c:1757,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1757,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: 1741
      functionLinenumberEnd: 1751
      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:1742,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1745,11'
          Dst:             mmap
        - Src:             'os/linux_usbfs.c:1747,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1747,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: 1735
      functionLinenumberEnd: 1737
      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:1736,9'
          Dst:             do_streams_ioctl
    - functionName:    op_alloc_streams
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1728
      functionLinenumberEnd: 1730
      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:1729,9'
          Dst:             do_streams_ioctl
    - functionName:    op_reset_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1638
      functionLinenumberEnd: 1686
      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:1639,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1651,4'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1654,2'
          Dst:             usbi_mutex_lock
        - Src:             'os/linux_usbfs.c:1655,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1657,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1662,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1662,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1676,7'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1678,4'
          Dst:             libusb_error_name
        - Src:             'os/linux_usbfs.c:1678,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1685,2'
          Dst:             usbi_mutex_unlock
    - functionName:    op_clear_halt
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1618
      functionLinenumberEnd: 1635
      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:1619,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1622,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1625,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1627,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1630,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1630,3'
          Dst:             usbi_log
    - functionName:    op_set_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1594
      functionLinenumberEnd: 1614
      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:1595,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1602,6'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1604,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1606,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1609,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1609,3'
          Dst:             usbi_log
    - functionName:    op_release_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1898
      functionLinenumberEnd: 1909
      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:1901,6'
          Dst:             release_interface
        - Src:             'os/linux_usbfs.c:1906,3'
          Dst:             op_attach_kernel_driver
    - functionName:    op_claim_interface
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1890
      functionLinenumberEnd: 1895
      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:1892,10'
          Dst:             detach_kernel_driver_and_claim
        - Src:             'os/linux_usbfs.c:1894,10'
          Dst:             claim_interface
    - functionName:    op_set_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1554
      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:1528,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1529,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1531,10'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1534,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1536,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1538,12'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1541,3'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1541,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1547,23'
          Dst:             dev_has_config0
    - functionName:    op_get_configuration
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1499
      functionLinenumberEnd: 1524
      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:1500,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:1505,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:1507,44'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1509,7'
          Dst:             usbfs_get_active_config
        - Src:             'os/linux_usbfs.c:1517,3'
          Dst:             usbi_log
    - functionName:    op_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 826
      functionLinenumberEnd: 840
      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:827,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 886
      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:876,35'
          Dst:             usbi_get_device_priv
    - functionName:    op_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 844
      functionLinenumberEnd: 871
      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:845,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:851,7'
          Dst:             sysfs_get_active_config
        - Src:             'os/linux_usbfs.c:860,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:864,6'
          Dst:             op_get_config_descriptor_by_value
    - functionName:    op_close
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1487
      functionLinenumberEnd: 1495
      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:1488,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1492,3'
          Dst:             usbi_remove_event_source
        - Src:             'os/linux_usbfs.c:1494,3'
          Dst:             close
    - functionName:    op_open
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1460
      functionLinenumberEnd: 1484
      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:1463,7'
          Dst:             get_usbfs_fd
        - Src:             'os/linux_usbfs.c:1468,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1470,5'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1471,5'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_usbfs.c:1474,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_usbfs.c:1479,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1481,3'
          Dst:             close
    - functionName:    op_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1411
      functionLinenumberEnd: 1457
      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:1412,43'
          Dst:             usbi_get_device_handle_priv
        - Src:             'os/linux_usbfs.c:1419,6'
          Dst:             linux_get_device_address
        - Src:             'os/linux_usbfs.c:1421,7'
          Dst:             ioctl
        - Src:             'os/linux_usbfs.c:1423,4'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:1423,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1434,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:1435,8'
          Dst:             usbi_alloc_device
        - Src:             'os/linux_usbfs.c:1439,6'
          Dst:             initialize_device
        - Src:             'os/linux_usbfs.c:1442,6'
          Dst:             usbi_sanitize_device
        - Src:             'os/linux_usbfs.c:1450,6'
          Dst:             initialize_handle
        - Src:             'os/linux_usbfs.c:1455,3'
          Dst:             libusb_unref_device
    - functionName:    op_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 518
      functionLinenumberEnd: 520
      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:519,2'
          Dst:             linux_hotplug_poll
    - functionName:    op_get_device_string
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 498
      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:469,2'
          Branch Sides:    []
      Callsites:
        - Src:             'os/linux_usbfs.c:465,35'
          Dst:             usbi_get_device_priv
        - Src:             'os/linux_usbfs.c:478,7'
          Dst:             open_sysfs_attr
        - Src:             'os/linux_usbfs.c:482,6'
          Dst:             read
        - Src:             'os/linux_usbfs.c:484,7'
          Dst:             __errno_location
        - Src:             'os/linux_usbfs.c:485,3'
          Dst:             close
        - Src:             'os/linux_usbfs.c:488,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:491,2'
          Dst:             close
    - functionName:    op_set_option
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 458
      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:450,38'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:452,3'
          Dst:             usbi_log
    - functionName:    op_exit
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 443
      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:432,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:438,2'
          Dst:             __assert_fail
        - Src:             'os/linux_usbfs.c:441,3'
          Dst:             linux_stop_event_monitor
    - functionName:    op_init
      functionSourceFile: '/src/libusb/libusb/os/linux_usbfs.c'
      linkageType:     InternalLinkage
      functionLinenumber: 356
      functionLinenumberEnd: 428
      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:360,37'
          Dst:             usbi_get_context_priv
        - Src:             'os/linux_usbfs.c:362,6'
          Dst:             get_kernel_version
        - Src:             'os/linux_usbfs.c:365,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:366,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:372,15'
          Dst:             find_usbfs_path
        - Src:             'os/linux_usbfs.c:379,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:381,3'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:385,7'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:387,12'
          Dst:             kernel_version_ge
        - Src:             'os/linux_usbfs.c:393,2'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:398,7'
          Dst:             statfs
        - Src:             'os/linux_usbfs.c:400,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:403,4'
          Dst:             usbi_log
        - Src:             'os/linux_usbfs.c:415,7'
          Dst:             linux_start_event_monitor
        - Src:             'os/linux_usbfs.c:418,7'
          Dst:             linux_scan_devices
        - Src:             'os/linux_usbfs.c:422,4'
          Dst:             linux_stop_event_monitor
        - Src:             'os/linux_usbfs.c:424,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: 1202
      functionLinenumberEnd: 1210
      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:1205,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_usbfs.c:1207,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_usbfs.c:1209,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    udev_hotplug_event
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 231
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          98
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - linux_device_disconnected
        - linux_hotplug_enumerate
        - strncmp
        - udev_device_get_action
        - udev_device_info
        - udev_device_unref
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:239,17'
          Dst:             udev_device_get_action
        - Src:             'os/linux_udev.c:244,15'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:246,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:251,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:253,7'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:254,4'
          Dst:             linux_hotplug_enumerate
        - Src:             'os/linux_udev.c:256,4'
          Dst:             linux_device_disconnected
        - Src:             'os/linux_udev.c:257,14'
          Dst:             strncmp
        - Src:             'os/linux_udev.c:260,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:264,2'
          Dst:             udev_device_unref
    - functionName:    udev_device_get_action
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_info
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - linux_get_device_address
        - udev_device_get_devnode
        - udev_device_get_sysname
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:216,13'
          Dst:             udev_device_get_devnode
        - Src:             'os/linux_udev.c:221,14'
          Dst:             udev_device_get_sysname
        - Src:             'os/linux_udev.c:226,9'
          Dst:             linux_get_device_address
    - functionName:    udev_device_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_devnode
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_get_sysname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    linux_udev_hotplug_poll
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          43
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - udev_hotplug_event
        - udev_monitor_receive_device
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:314,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:316,14'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:318,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:319,4'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:322,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    udev_monitor_receive_device
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_scan_devices
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 308
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - linux_enumerate_device
        - udev_device_info
        - udev_device_new_from_syspath
        - udev_device_unref
        - udev_enumerate_add_match_property
        - udev_enumerate_add_match_subsystem
        - udev_enumerate_get_list_entry
        - udev_enumerate_new
        - udev_enumerate_scan_devices
        - udev_enumerate_unref
        - udev_list_entry_get_name
        - udev_list_entry_get_next
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:275,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:277,15'
          Dst:             udev_enumerate_new
        - Src:             'os/linux_udev.c:279,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:283,2'
          Dst:             udev_enumerate_add_match_subsystem
        - Src:             'os/linux_udev.c:284,2'
          Dst:             udev_enumerate_add_match_property
        - Src:             'os/linux_udev.c:285,2'
          Dst:             udev_enumerate_scan_devices
        - Src:             'os/linux_udev.c:286,12'
          Dst:             udev_enumerate_get_list_entry
        - Src:             'os/linux_udev.c:290,22'
          Dst:             udev_list_entry_get_name
        - Src:             'os/linux_udev.c:293,14'
          Dst:             udev_device_new_from_syspath
        - Src:             'os/linux_udev.c:295,7'
          Dst:             udev_device_info
        - Src:             'os/linux_udev.c:297,4'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:301,3'
          Dst:             linux_enumerate_device
        - Src:             'os/linux_udev.c:302,3'
          Dst:             udev_device_unref
        - Src:             'os/linux_udev.c:289,2'
          Dst:             udev_list_entry_get_next
        - Src:             'os/linux_udev.c:305,2'
          Dst:             udev_enumerate_unref
    - functionName:    udev_enumerate_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_subsystem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_add_match_property
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_scan_devices
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_get_list_entry
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_name
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_device_new_from_syspath
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_list_entry_get_next
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_enumerate_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_stop_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          70
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - pthread_join
        - udev_monitor_unref
        - udev_unref
        - usbi_destroy_event
        - usbi_log
        - usbi_signal_event
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:137,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:138,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:139,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:142,2'
          Dst:             usbi_signal_event
        - Src:             'os/linux_udev.c:144,6'
          Dst:             pthread_join
        - Src:             'os/linux_udev.c:146,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:148,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:152,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:157,2'
          Dst:             udev_unref
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_unref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_event_thread_main
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         22
      ICount:          116
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - __errno_location
        - poll
        - pthread_self
        - pthread_setname_np
        - udev_hotplug_event
        - udev_monitor_receive_device
        - usbi_log
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:177,25'
          Dst:             pthread_self
        - Src:             'os/linux_udev.c:177,6'
          Dst:             pthread_setname_np
        - Src:             'os/linux_udev.c:179,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:182,2'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:185,7'
          Dst:             poll
        - Src:             'os/linux_udev.c:188,8'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:190,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:190,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:198,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'os/linux_udev.c:199,15'
          Dst:             udev_monitor_receive_device
        - Src:             'os/linux_udev.c:201,5'
          Dst:             udev_hotplug_event
        - Src:             'os/linux_udev.c:202,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'os/linux_udev.c:206,2'
          Dst:             usbi_log
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    linux_udev_start_event_monitor
      functionSourceFile: '/src/libusb/libusb/os/linux_udev.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 131
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         37
      ICount:          196
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - __assert_fail
        - __errno_location
        - fcntl
        - linux_udev_event_thread_main
        - pthread_create
        - udev_monitor_enable_receiving
        - udev_monitor_filter_add_match_subsystem_devtype
        - udev_monitor_get_fd
        - udev_monitor_new_from_netlink
        - udev_monitor_unref
        - udev_new
        - udev_unref
        - usbi_create_event
        - usbi_destroy_event
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'os/linux_udev.c:50,2'
          Dst:             __assert_fail
        - Src:             'os/linux_udev.c:51,13'
          Dst:             udev_new
        - Src:             'os/linux_udev.c:53,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:57,17'
          Dst:             udev_monitor_new_from_netlink
        - Src:             'os/linux_udev.c:59,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:63,6'
          Dst:             udev_monitor_filter_add_match_subsystem_devtype
        - Src:             'os/linux_udev.c:65,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:69,6'
          Dst:             udev_monitor_enable_receiving
        - Src:             'os/linux_udev.c:70,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:74,20'
          Dst:             udev_monitor_get_fd
        - Src:             'os/linux_udev.c:78,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:80,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:80,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:84,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:85,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:85,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:93,6'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:95,3'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:95,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:99,7'
          Dst:             fcntl
        - Src:             'os/linux_udev.c:100,4'
          Dst:             __errno_location
        - Src:             'os/linux_udev.c:100,4'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:105,6'
          Dst:             usbi_create_event
        - Src:             'os/linux_udev.c:107,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:111,6'
          Dst:             pthread_create
        - Src:             'os/linux_udev.c:111,6'
          Dst:             linux_udev_event_thread_main
        - Src:             'os/linux_udev.c:113,3'
          Dst:             usbi_log
        - Src:             'os/linux_udev.c:120,2'
          Dst:             usbi_destroy_event
        - Src:             'os/linux_udev.c:123,2'
          Dst:             udev_monitor_unref
        - Src:             'os/linux_udev.c:127,2'
          Dst:             udev_unref
    - functionName:    udev_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_new_from_netlink
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_filter_add_match_subsystem_devtype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_enable_receiving
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    udev_monitor_get_fd
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    log_str
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2878
      functionLinenumberEnd: 2917
      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:2915,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: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_get_version
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3105
      functionLinenumberEnd: 3106
      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: 3050
      functionLinenumberEnd: 3097
      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:3051,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    log_v
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2921
      functionLinenumberEnd: 3025
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         45
      ICount:          300
      EdgeCount:       55
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - get_env_debug_level
        - log_str
        - snprintf
        - usbi_get_monotonic_time
        - usbi_get_tid
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2947,2'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2938,41'
          Dst:             get_env_debug_level
        - Src:             'core.c:2949,3'
          Dst:             __assert_fail
        - Src:             'core.c:2973,4'
          Dst:             log_str
        - Src:             'core.c:2974,4'
          Dst:             log_str
        - Src:             'core.c:2977,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2982,63'
          Dst:             usbi_get_tid
        - Src:             'core.c:2980,16'
          Dst:             snprintf
        - Src:             'core.c:2984,16'
          Dst:             snprintf
        - Src:             'core.c:2998,13'
          Dst:             vsnprintf
        - Src:             'core.c:3008,9'
          Dst:             snprintf
        - Src:             'core.c:3013,9'
          Dst:             snprintf
        - Src:             'core.c:3018,2'
          Dst:             log_str
    - functionName:    get_env_debug_level
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2551
      functionLinenumberEnd: 2559
      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:2553,20'
          Dst:             getenv
        - Src:             'core.c:2555,20'
          Dst:             strtol
    - functionName:    usbi_get_monotonic_time
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 556
      functionLinenumberEnd: 558
      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:557,2'
          Dst:             clock_gettime
        - Src:             './libusbi.h:557,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: 2746
      functionLinenumberEnd: 2809
      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:2750,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2756,4'
          Dst:             usbi_log
        - Src:             'core.c:2757,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2762,4'
          Dst:             usbi_log
        - Src:             'core.c:2763,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2767,3'
          Dst:             usbi_log
        - Src:             'core.c:2770,3'
          Dst:             usbi_log
        - Src:             'core.c:2774,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2775,2'
          Dst:             list_del
        - Src:             'core.c:2776,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2779,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2789,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2794,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2797,3'
          Dst:             usbi_log
        - Src:             'core.c:2803,3'
          Dst:             usbi_log
        - Src:             'core.c:2805,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2806,2'
          Dst:             usbi_mutex_destroy
    - functionName:    usbi_mutex_static_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:35,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:35,2'
          Dst:             __assert_fail
    - functionName:    usbi_log
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3029
      functionLinenumberEnd: 3035
      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:3033,2'
          Dst:             log_v
    - functionName:    usbi_mutex_static_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 40
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:39,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:39,2'
          Dst:             __assert_fail
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      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: 2592
      functionLinenumberEnd: 2738
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          438
      EdgeCount:       93
      CyclomaticComplexity: 22
      functionsReached:
        - calloc
        - get_env_debug_level
        - getenv
        - libusb_set_option
        - list_add
        - list_del
        - list_init
        - usbi_get_monotonic_time
        - usbi_hotplug_exit
        - usbi_hotplug_init
        - usbi_io_exit
        - usbi_io_init
        - usbi_log
        - usbi_mutex_destroy
        - usbi_mutex_init
        - usbi_mutex_static_lock
        - usbi_mutex_static_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'core.c:2651,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2597,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2600,3'
          Dst:             usbi_log
        - Src:             'core.c:2602,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2607,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2609,3'
          Dst:             list_init
        - Src:             'core.c:2610,3'
          Dst:             usbi_get_monotonic_time
        - Src:             'core.c:2612,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2614,34'
          Dst:             calloc
        - Src:             'core.c:2616,3'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2622,6'
          Dst:             getenv
        - Src:             'core.c:2623,17'
          Dst:             get_env_debug_level
        - Src:             'core.c:2630,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2631,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:2632,2'
          Dst:             list_init
        - Src:             'core.c:2633,2'
          Dst:             list_init
        - Src:             'core.c:2641,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2643,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2653,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2661,8'
          Dst:             libusb_set_option
        - Src:             'core.c:2674,3'
          Dst:             usbi_log
        - Src:             'core.c:2677,2'
          Dst:             usbi_log
        - Src:             'core.c:2681,6'
          Dst:             usbi_io_init
        - Src:             'core.c:2685,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2686,2'
          Dst:             list_add
        - Src:             'core.c:2687,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2696,2'
          Dst:             usbi_hotplug_init
        - Src:             'core.c:2707,4'
          Dst:             usbi_log
        - Src:             'core.c:2711,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2716,2'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2717,2'
          Dst:             list_del
        - Src:             'core.c:2718,2'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2720,2'
          Dst:             usbi_hotplug_exit
        - Src:             'core.c:2721,2'
          Dst:             usbi_io_exit
        - Src:             'core.c:2730,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2731,2'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:2735,2'
          Dst:             usbi_mutex_static_unlock
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_option
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2462
      functionLinenumberEnd: 2542
      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:2508,3'
          Branch Sides:    []
      Callsites:
        - Src:             'core.c:2493,4'
          Dst:             usbi_mutex_static_lock
        - Src:             'core.c:2499,5'
          Dst:             libusb_set_log_cb_internal
        - Src:             'core.c:2501,4'
          Dst:             usbi_mutex_static_unlock
        - Src:             'core.c:2504,9'
          Dst:             usbi_get_context
        - Src:             'core.c:2531,4'
          Dst:             libusb_set_log_cb_internal
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 223
      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: 2387
      functionLinenumberEnd: 2406
      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:2395,9'
          Dst:             usbi_get_context
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 474
      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:470,4'
          Dst:             usbi_log
    - functionName:    libusb_init
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2569
      functionLinenumberEnd: 2570
      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:2570,9'
          Dst:             libusb_init_context
    - functionName:    libusb_set_log_cb
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2433
      functionLinenumberEnd: 2435
      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:2434,2'
          Dst:             libusb_set_log_cb_internal
    - functionName:    libusb_set_debug
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2381
      functionLinenumberEnd: 2383
      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:2382,2'
          Dst:             libusb_set_option
    - functionName:    libusb_get_max_raw_io_transfer_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2368
      functionLinenumberEnd: 2374
      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: 2344
      functionLinenumberEnd: 2349
      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: 2292
      functionLinenumberEnd: 2303
      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:2299,2'
          Dst:             __assert_fail
        - Src:             'core.c:2300,2'
          Dst:             __assert_fail
    - functionName:    libusb_set_auto_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2263
      functionLinenumberEnd: 2269
      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: 2224
      functionLinenumberEnd: 2237
      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:2225,2'
          Dst:             usbi_log
    - functionName:    libusb_detach_kernel_driver
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2188
      functionLinenumberEnd: 2201
      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:2189,2'
          Dst:             usbi_log
    - functionName:    libusb_kernel_driver_active
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2150
      functionLinenumberEnd: 2163
      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:2151,2'
          Dst:             usbi_log
    - functionName:    libusb_dev_mem_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2124
      functionLinenumberEnd: 2129
      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: 2104
      functionLinenumberEnd: 2112
      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: 2061
      functionLinenumberEnd: 2075
      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:2062,2'
          Dst:             usbi_log
    - functionName:    libusb_alloc_streams
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2031
      functionLinenumberEnd: 2045
      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:2032,2'
          Dst:             usbi_log
    - functionName:    libusb_reset_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1997
      functionLinenumberEnd: 2006
      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:1998,2'
          Dst:             usbi_log
    - functionName:    libusb_clear_halt
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1969
      functionLinenumberEnd: 1975
      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:1970,2'
          Dst:             usbi_log
    - functionName:    libusb_set_interface_alt_setting
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1928
      functionLinenumberEnd: 1949
      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:1929,2'
          Dst:             usbi_log
        - Src:             'core.c:1940,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1942,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1945,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    libusb_release_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1883
      functionLinenumberEnd: 1903
      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:1886,2'
          Dst:             usbi_log
        - Src:             'core.c:1890,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1901,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_claim_interface
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1839
      functionLinenumberEnd: 1860
      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:1842,2'
          Dst:             usbi_log
        - Src:             'core.c:1849,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1858,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_set_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1802
      functionLinenumberEnd: 1807
      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:1803,2'
          Dst:             usbi_log
    - functionName:    libusb_get_configuration
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1715
      functionLinenumberEnd: 1743
      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:1720,2'
          Dst:             usbi_log
        - Src:             'core.c:1725,3'
          Dst:             usbi_log
        - Src:             'core.c:1726,7'
          Dst:             libusb_control_transfer
        - Src:             'core.c:1731,4'
          Dst:             usbi_log
        - Src:             'core.c:1734,4'
          Dst:             usbi_log
        - Src:             'core.c:1739,3'
          Dst:             usbi_log
    - functionName:    libusb_get_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1689
      functionLinenumberEnd: 1690
      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: 1561
      functionLinenumberEnd: 1613
      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:1566,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1577,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1579,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1581,4'
          Dst:             usbi_log
        - Src:             'core.c:1584,5'
          Dst:             usbi_log
        - Src:             'core.c:1586,5'
          Dst:             usbi_log
        - Src:             'core.c:1593,3'
          Dst:             list_del
        - Src:             'core.c:1600,3'
          Dst:             usbi_log
        - Src:             'core.c:1603,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1605,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1606,2'
          Dst:             list_del
        - Src:             'core.c:1607,2'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1610,2'
          Dst:             libusb_unref_device
        - Src:             'core.c:1611,2'
          Dst:             usbi_mutex_destroy
    - functionName:    libusb_unref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1335
      functionLinenumberEnd: 1377
      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:1341,7'
          Dst:             libusb_has_capability
        - Src:             'core.c:1350,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1352,3'
          Dst:             __assert_fail
        - Src:             'core.c:1354,4'
          Dst:             list_del
        - Src:             'core.c:1357,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1360,3'
          Dst:             __assert_fail
        - Src:             'core.c:1364,3'
          Dst:             usbi_log
        - Src:             'core.c:1366,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_has_capability
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2820
      functionLinenumberEnd: 2832
      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:2821,2'
          Branch Sides:    []
      Callsites:       []
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 500
      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:500,9'
          Dst:             usbi_tls_key_get
    - functionName:    libusb_close
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1627
      functionLinenumberEnd: 1678
      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:1635,2'
          Dst:             usbi_log
        - Src:             'core.c:1637,20'
          Dst:             usbi_handling_events
        - Src:             'core.c:1650,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1655,4'
          Dst:             usbi_signal_event
        - Src:             'core.c:1656,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1659,3'
          Dst:             libusb_lock_events
        - Src:             'core.c:1663,2'
          Dst:             do_close
        - Src:             'core.c:1668,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1672,4'
          Dst:             usbi_clear_event
        - Src:             'core.c:1673,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:1676,3'
          Dst:             libusb_unlock_events
    - functionName:    libusb_open_device_with_vid_pid
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1526
      functionLinenumberEnd: 1557
      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:1534,6'
          Dst:             libusb_get_device_list
        - Src:             'core.c:1539,7'
          Dst:             libusb_get_device_descriptor
        - Src:             'core.c:1549,7'
          Dst:             libusb_open
        - Src:             'core.c:1555,2'
          Dst:             libusb_free_device_list
    - functionName:    libusb_get_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 849
      functionLinenumberEnd: 908
      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:850,37'
          Dst:             discovered_devs_alloc
        - Src:             'core.c:855,2'
          Dst:             usbi_log
        - Src:             'core.c:860,8'
          Dst:             usbi_get_context
        - Src:             'core.c:862,6'
          Dst:             libusb_has_capability
        - Src:             'core.c:869,3'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:871,15'
          Dst:             discovered_devs_append
        - Src:             'core.c:878,3'
          Dst:             usbi_mutex_unlock
        - Src:             'core.c:891,33'
          Dst:             calloc
        - Src:             'core.c:900,12'
          Dst:             libusb_ref_device
        - Src:             'core.c:906,3'
          Dst:             discovered_devs_free
    - functionName:    libusb_open
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1471
      functionLinenumberEnd: 1505
      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:1477,2'
          Dst:             usbi_log
        - Src:             'core.c:1482,47'
          Dst:             calloc
        - Src:             'core.c:1486,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1488,21'
          Dst:             libusb_ref_device
        - Src:             'core.c:1492,3'
          Dst:             usbi_log
        - Src:             'core.c:1493,3'
          Dst:             libusb_unref_device
        - Src:             'core.c:1494,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1499,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1500,2'
          Dst:             list_add
        - Src:             'core.c:1501,2'
          Dst:             usbi_mutex_unlock
    - functionName:    libusb_free_device_list
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 919
      functionLinenumberEnd: 931
      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:928,4'
          Dst:             libusb_unref_device
    - functionName:    libusb_ref_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1319
      functionLinenumberEnd: 1326
      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:1323,2'
          Dst:             __assert_fail
    - functionName:    discovered_devs_alloc
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 673
      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: 690
      functionLinenumberEnd: 720
      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:697,28'
          Dst:             libusb_ref_device
        - Src:             'core.c:703,2'
          Dst:             usbi_log
        - Src:             'core.c:707,43'
          Dst:             realloc
        - Src:             'core.c:710,3'
          Dst:             discovered_devs_free
        - Src:             'core.c:716,27'
          Dst:             libusb_ref_device
    - functionName:    discovered_devs_free
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 684
      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:681,3'
          Dst:             libusb_unref_device
    - functionName:    libusb_wrap_sys_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1416
      functionLinenumberEnd: 1448
      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:1421,2'
          Dst:             usbi_log
        - Src:             'core.c:1423,8'
          Dst:             usbi_get_context
        - Src:             'core.c:1428,47'
          Dst:             calloc
        - Src:             'core.c:1432,2'
          Dst:             usbi_mutex_init
        - Src:             'core.c:1436,3'
          Dst:             usbi_log
        - Src:             'core.c:1437,3'
          Dst:             usbi_mutex_destroy
        - Src:             'core.c:1442,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:1443,2'
          Dst:             list_add
        - Src:             'core.c:1444,2'
          Dst:             usbi_mutex_unlock
    - functionName:    find_alt_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1136
      functionLinenumberEnd: 1158
      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: 1286
      functionLinenumberEnd: 1310
      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:1291,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1293,3'
          Dst:             usbi_log
        - Src:             'core.c:1298,7'
          Dst:             find_alt_endpoint
        - Src:             'core.c:1305,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1308,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    get_endpoint_max_packet_size
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1162
      functionLinenumberEnd: 1189
      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:1169,10'
          Dst:             libusb_get_device_speed
        - Src:             'core.c:1171,7'
          Dst:             libusb_get_ss_endpoint_companion_descriptor
        - Src:             'core.c:1174,4'
          Dst:             libusb_free_ss_endpoint_companion_descriptor
    - functionName:    libusb_get_device_speed
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1062
      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: 1227
      functionLinenumberEnd: 1250
      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:1232,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1234,3'
          Dst:             usbi_log
        - Src:             'core.c:1239,7'
          Dst:             find_endpoint
        - Src:             'core.c:1245,6'
          Dst:             get_endpoint_max_packet_size
        - Src:             'core.c:1248,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    find_endpoint
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1067
      functionLinenumberEnd: 1088
      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: 1108
      functionLinenumberEnd: 1131
      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:1113,6'
          Dst:             libusb_get_active_config_descriptor
        - Src:             'core.c:1115,3'
          Dst:             usbi_log
        - Src:             'core.c:1120,7'
          Dst:             find_endpoint
        - Src:             'core.c:1129,2'
          Dst:             libusb_free_config_descriptor
    - functionName:    libusb_get_device_address
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1050
      functionLinenumberEnd: 1051
      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: 1040
      functionLinenumberEnd: 1041
      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: 1021
      functionLinenumberEnd: 1024
      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:1024,9'
          Dst:             libusb_get_port_numbers
    - functionName:    libusb_get_port_numbers
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1014
      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:1005,4'
          Dst:             usbi_log
    - functionName:    libusb_get_port_number
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 978
      functionLinenumberEnd: 979
      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: 959
      functionLinenumberEnd: 960
      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: 949
      functionLinenumberEnd: 950
      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: 811
      functionLinenumberEnd: 824
      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:815,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:818,10'
          Dst:             libusb_ref_device
        - Src:             'core.c:822,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_sanitize_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 786
      functionLinenumberEnd: 804
      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:791,3'
          Dst:             usbi_log
        - Src:             'core.c:797,3'
          Dst:             usbi_log
        - Src:             'core.c:800,3'
          Dst:             usbi_log
    - functionName:    usbi_disconnect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 777
      functionLinenumberEnd: 780
      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:778,2'
          Dst:             usbi_detach_device
        - Src:             'core.c:779,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_detach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 774
      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:771,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:772,2'
          Dst:             list_del
        - Src:             'core.c:773,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_connect_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 760
      functionLinenumberEnd: 763
      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:761,2'
          Dst:             usbi_attach_device
        - Src:             'core.c:762,2'
          Dst:             usbi_hotplug_notification
    - functionName:    usbi_attach_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 757
      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:754,2'
          Dst:             usbi_mutex_lock
        - Src:             'core.c:755,2'
          Dst:             list_add
        - Src:             'core.c:756,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_alloc_device
      functionSourceFile: '/src/libusb/libusb/core.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 746
      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:728,54'
          Dst:             calloc
    - functionName:    parse_iad_array
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1370
      functionLinenumberEnd: 1442
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          311
      EdgeCount:       45
      CyclomaticComplexity: 13
      functionsReached:
        - calloc
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:1382,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1392,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1397,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:1408,59'
          Dst:             calloc
    - functionName:    clear_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clear_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 170
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - clear_endpoint
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:159,6'
          Dst:             clear_endpoint
    - functionName:    parse_endpoint
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 140
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          361
      EdgeCount:       53
      CyclomaticComplexity: 16
      functionsReached:
        - ReadLittleEndian16
        - usbi_log
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'descriptor.c:63,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:70,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:74,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:77,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:86,29'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:103,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:107,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:119,3'
          Dst:             usbi_log
    - functionName:    ReadLittleEndian16
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_interface
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 174
      functionLinenumberEnd: 324
      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:186,54'
          Dst:             realloc
        - Src:             'descriptor.c:205,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:209,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:214,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:218,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:242,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:248,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:290,52'
          Dst:             calloc
        - Src:             'descriptor.c:298,9'
          Dst:             parse_endpoint
        - Src:             'descriptor.c:322,2'
          Dst:             clear_interface
    - functionName:    parse_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 345
      functionLinenumberEnd: 458
      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:352,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:359,25'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:366,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:370,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:373,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:377,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:381,45'
          Dst:             calloc
        - Src:             'descriptor.c:399,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:405,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:419,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:428,32'
          Dst:             realloc
        - Src:             'descriptor.c:441,7'
          Dst:             parse_interface
        - Src:             'descriptor.c:456,2'
          Dst:             clear_configuration
    - functionName:    clear_configuration
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 327
      functionLinenumberEnd: 341
      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:332,4'
          Dst:             clear_interface
    - functionName:    usbi_utf8_copy
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1595
      functionLinenumberEnd: 1632
      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:1607,16'
          Dst:             strlen
        - Src:             'descriptor.c:1627,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: 1673
      functionLinenumberEnd: 1712
      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:1711,9'
          Dst:             usbi_utf8_copy
    - functionName:    libusb_free_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1571
      functionLinenumberEnd: 1578
      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: 1535
      functionLinenumberEnd: 1558
      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:1544,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1548,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1553,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:1555,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 500
      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:491,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:495,3'
          Dst:             usbi_log
    - functionName:    libusb_cpu_to_le16
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 205
      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: 1446
      functionLinenumberEnd: 1463
      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:1448,61'
          Dst:             calloc
        - Src:             'descriptor.c:1454,6'
          Dst:             parse_iad_array
        - Src:             'descriptor.c:1456,3'
          Dst:             usbi_log
    - functionName:    libusb_get_interface_association_descriptors
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1486
      functionLinenumberEnd: 1514
      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:1495,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:1499,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1503,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1508,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:1510,7'
          Dst:             raw_desc_to_iad_array
    - functionName:    get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 504
      functionLinenumberEnd: 519
      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:510,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:514,3'
          Dst:             usbi_log
    - functionName:    libusb_get_string_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2272
      functionLinenumberEnd: 2275
      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:2273,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_string_descriptor_ascii
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1310
      functionLinenumberEnd: 1365
      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:1327,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1331,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1334,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1336,11'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:1337,6'
          Dst:             libusb_get_string_descriptor
        - Src:             'descriptor.c:1343,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1356,11'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_free_platform_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1292
      functionLinenumberEnd: 1294
      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: 1246
      functionLinenumberEnd: 1280
      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:1250,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1255,3'
          Dst:             usbi_log
    - functionName:    libusb_free_container_id_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1224
      functionLinenumberEnd: 1226
      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: 1186
      functionLinenumberEnd: 1212
      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:1190,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1195,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1166
      functionLinenumberEnd: 1168
      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: 1149
      functionLinenumberEnd: 1151
      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: 1072
      functionLinenumberEnd: 1134
      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:1080,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1085,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1095,34'
          Dst:             ReadLittleEndian32
        - Src:             'descriptor.c:1096,43'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1097,31'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1116,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1123,19'
          Dst:             ReadLittleEndian32
    - functionName:    ReadLittleEndian32
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          28
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    libusb_get_ss_usb_device_capability_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 992
      functionLinenumberEnd: 1021
      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:996,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1001,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:1014,40'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:1017,38'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_usb_2_0_extension_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 971
      functionLinenumberEnd: 973
      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: 934
      functionLinenumberEnd: 959
      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:938,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:943,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:955,37'
          Dst:             ReadLittleEndian32
    - functionName:    libusb_free_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 906
      functionLinenumberEnd: 915
      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: 769
      functionLinenumberEnd: 842
      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:776,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:783,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:787,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:790,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:795,41'
          Dst:             calloc
        - Src:             'descriptor.c:801,23'
          Dst:             ReadLittleEndian16
        - Src:             'descriptor.c:809,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:815,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:819,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:821,4'
          Dst:             libusb_free_bos_descriptor
        - Src:             'descriptor.c:824,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:831,4'
          Dst:             libusb_free_bos_descriptor
    - functionName:    libusb_get_descriptor
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2250
      functionLinenumberEnd: 2253
      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:2251,9'
          Dst:             libusb_control_transfer
    - functionName:    libusb_get_bos_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 857
      functionLinenumberEnd: 896
      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:866,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:869,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:873,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:878,12'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:879,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:881,24'
          Dst:             calloc
        - Src:             'descriptor.c:885,6'
          Dst:             libusb_get_descriptor
        - Src:             'descriptor.c:888,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:889,7'
          Dst:             parse_bos
        - Src:             'descriptor.c:891,3'
          Dst:             usbi_log
    - functionName:    libusb_free_ss_endpoint_companion_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 764
      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: 711
      functionLinenumberEnd: 750
      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:722,5'
          Dst:             usbi_log
        - Src:             'descriptor.c:730,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:734,4'
          Dst:             usbi_log
        - Src:             'descriptor.c:746,35'
          Dst:             ReadLittleEndian16
    - functionName:    libusb_free_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 692
      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:690,2'
          Dst:             clear_configuration
    - functionName:    libusb_get_config_descriptor_by_value
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 646
      functionLinenumberEnd: 674
      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:658,10'
          Dst:             raw_desc_to_config
        - Src:             'descriptor.c:661,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:665,7'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:670,11'
          Dst:             libusb_get_config_descriptor
    - functionName:    raw_desc_to_config
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 462
      functionLinenumberEnd: 480
      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:463,80'
          Dst:             calloc
        - Src:             'descriptor.c:469,6'
          Dst:             parse_configuration
        - Src:             'descriptor.c:471,3'
          Dst:             usbi_log
        - Src:             'descriptor.c:475,3'
          Dst:             usbi_log
    - functionName:    libusb_get_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 600
      functionLinenumberEnd: 625
      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:606,2'
          Dst:             usbi_log
        - Src:             'descriptor.c:610,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:614,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:619,6'
          Dst:             get_config_descriptor
        - Src:             'descriptor.c:621,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_active_config_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 559
      functionLinenumberEnd: 580
      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:565,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:569,15'
          Dst:             libusb_cpu_to_le16
        - Src:             'descriptor.c:574,6'
          Dst:             get_active_config_descriptor
        - Src:             'descriptor.c:576,7'
          Dst:             raw_desc_to_config
    - functionName:    libusb_get_device_descriptor
      functionSourceFile: '/src/libusb/libusb/descriptor.c'
      linkageType:     InternalLinkage
      functionLinenumber: 535
      functionLinenumberEnd: 540
      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:536,2'
          Dst:             usbi_log
    - functionName:    libusb_hotplug_get_user_data
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 469
      functionLinenumberEnd: 491
      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:474,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:477,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:479,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:481,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:488,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_get_context
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 474
      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:470,4'
          Dst:             usbi_log
    - functionName:    usbi_mutex_lock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:49,2'
          Dst:             pthread_mutex_lock
        - Src:             './os/threads_posix.h:49,2'
          Dst:             __assert_fail
    - functionName:    usbi_mutex_unlock
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 54
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_unlock
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:53,2'
          Dst:             pthread_mutex_unlock
        - Src:             './os/threads_posix.h:53,2'
          Dst:             __assert_fail
    - functionName:    libusb_hotplug_deregister_callback
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 431
      functionLinenumberEnd: 464
      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:436,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:439,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:441,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:443,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:452,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:457,3'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:461,4'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:462,3'
          Dst:             usbi_mutex_unlock
    - functionName:    list_add
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 217
      functionLinenumberEnd: 223
      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: 349
      functionLinenumberEnd: 427
      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:363,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:366,8'
          Dst:             usbi_get_context
        - Src:             'hotplug.c:368,47'
          Dst:             calloc
        - Src:             'hotplug.c:388,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:397,2'
          Dst:             list_add
        - Src:             'hotplug.c:399,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:401,2'
          Dst:             usbi_log
        - Src:             'hotplug.c:408,9'
          Dst:             libusb_get_device_list
        - Src:             'hotplug.c:410,4'
          Dst:             libusb_hotplug_deregister_callback
        - Src:             'hotplug.c:415,4'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:420,3'
          Dst:             libusb_free_device_list
    - functionName:    usbi_hotplug_match_cb
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 240
      functionLinenumberEnd: 261
      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: 296
      functionLinenumberEnd: 342
      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:301,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:312,4'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:313,8'
          Dst:             usbi_hotplug_match_cb
        - Src:             'hotplug.c:314,4'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:317,5'
          Dst:             list_del
        - Src:             'hotplug.c:325,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:327,3'
          Dst:             list_del
        - Src:             'hotplug.c:334,4'
          Dst:             usbi_log
        - Src:             'hotplug.c:336,4'
          Dst:             list_del
        - Src:             'hotplug.c:341,2'
          Dst:             usbi_mutex_unlock
    - functionName:    list_del
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 240
      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: 227
      functionLinenumberEnd: 233
      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: 265
      functionLinenumberEnd: 293
      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:275,39'
          Dst:             calloc
        - Src:             'hotplug.c:277,3'
          Dst:             usbi_log
        - Src:             'hotplug.c:286,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:289,2'
          Dst:             list_add_tail
        - Src:             'hotplug.c:291,3'
          Dst:             usbi_signal_event
        - Src:             'hotplug.c:292,2'
          Dst:             usbi_mutex_unlock
    - functionName:    usbi_mutex_destroy
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 63
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:62,2'
          Dst:             pthread_mutex_destroy
        - Src:             './os/threads_posix.h:62,2'
          Dst:             __assert_fail
    - functionName:    usbi_recursively_remove_parents
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 185
      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:177,4'
          Dst:             __assert_fail
        - Src:             'hotplug.c:179,5'
          Dst:             list_del
        - Src:             'hotplug.c:183,3'
          Dst:             usbi_recursively_remove_parents
    - functionName:    usbi_hotplug_exit
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 236
      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:194,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:202,3'
          Dst:             list_del
        - Src:             'hotplug.c:213,4'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:215,3'
          Dst:             list_del
        - Src:             'hotplug.c:219,2'
          Dst:             usbi_mutex_lock
        - Src:             'hotplug.c:226,4'
          Dst:             list_del
        - Src:             'hotplug.c:229,3'
          Dst:             usbi_recursively_remove_parents
        - Src:             'hotplug.c:231,3'
          Dst:             libusb_unref_device
        - Src:             'hotplug.c:233,2'
          Dst:             usbi_mutex_unlock
        - Src:             'hotplug.c:235,2'
          Dst:             usbi_mutex_destroy
    - functionName:    list_init
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_mutex_init
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_init
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:45,2'
          Dst:             pthread_mutex_init
        - Src:             './os/threads_posix.h:45,2'
          Dst:             __assert_fail
    - functionName:    usbi_hotplug_init
      functionSourceFile: '/src/libusb/libusb/hotplug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 164
      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:157,7'
          Dst:             libusb_has_capability
        - Src:             'hotplug.c:160,2'
          Dst:             usbi_mutex_init
        - Src:             'hotplug.c:161,2'
          Dst:             list_init
    - functionName:    libusb_fill_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 2032
      functionLinenumberEnd: 2041
      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: 198
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usbi_tls_key_get
      functionSourceFile: '/src/libusb/libusb/./os/threads_posix.h'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './os/threads_posix.h:94,9'
          Dst:             pthread_getspecific
    - functionName:    libusb_interrupt_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 343
      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:342,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    do_sync_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 237
      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:209,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:185,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:188,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:192,2'
          Dst:             libusb_fill_bulk_transfer
        - Src:             'sync.c:192,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:196,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:198,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:202,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:205,3'
          Dst:             __assert_fail
        - Src:             'sync.c:230,3'
          Dst:             usbi_log
        - Src:             'sync.c:235,2'
          Dst:             libusb_free_transfer
    - functionName:    usbi_handling_events
      functionSourceFile: '/src/libusb/libusb/./libusbi.h'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 500
      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:500,9'
          Dst:             usbi_tls_key_get
    - functionName:    sync_transfer_cb
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 49
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          45
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - usbi_log
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'sync.c:40,2'
          Dst:             usbi_log
    - functionName:    sync_transfer_wait_for_completion
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         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:57,7'
          Dst:             libusb_handle_events_completed
        - Src:             'sync.c:61,4'
          Dst:             libusb_error_name
        - Src:             'sync.c:61,4'
          Dst:             usbi_log
        - Src:             'sync.c:63,4'
          Dst:             libusb_cancel_transfer
    - functionName:    libusb_bulk_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 287
      functionLinenumberEnd: 289
      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:288,9'
          Dst:             do_sync_bulk_transfer
    - functionName:    libusb_control_transfer_get_data
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1895
      functionLinenumberEnd: 1896
      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: 1993
      functionLinenumberEnd: 2013
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          82
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - libusb_cpu_to_le16
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             './libusb.h:2002,6'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_fill_control_setup
      functionSourceFile: '/src/libusb/libusb/./libusb.h'
      linkageType:     InternalLinkage
      functionLinenumber: 1943
      functionLinenumberEnd: 1950
      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:1947,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1948,18'
          Dst:             libusb_cpu_to_le16
        - Src:             './libusb.h:1949,19'
          Dst:             libusb_cpu_to_le16
    - functionName:    libusb_control_transfer
      functionSourceFile: '/src/libusb/libusb/sync.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 175
      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:147,2'
          Branch Sides:    []
      Callsites:
        - Src:             'sync.c:114,6'
          Dst:             usbi_handling_events
        - Src:             'sync.c:117,13'
          Dst:             libusb_alloc_transfer
        - Src:             'sync.c:123,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:127,2'
          Dst:             libusb_fill_control_setup
        - Src:             'sync.c:132,2'
          Dst:             libusb_fill_control_transfer
        - Src:             'sync.c:132,2'
          Dst:             sync_transfer_cb
        - Src:             'sync.c:135,6'
          Dst:             libusb_submit_transfer
        - Src:             'sync.c:137,3'
          Dst:             libusb_free_transfer
        - Src:             'sync.c:141,2'
          Dst:             sync_transfer_wait_for_completion
        - Src:             'sync.c:144,16'
          Dst:             libusb_control_transfer_get_data
        - Src:             'sync.c:168,3'
          Dst:             usbi_log
        - Src:             'sync.c:173,2'
          Dst:             libusb_free_transfer
...
